【问题标题】:Are rest api query parameters secure when sending via HTTPS?通过 HTTPS 发送时,rest api 查询参数是否安全?
【发布时间】:2021-03-14 05:01:58
【问题描述】:

我暴露了下面的rest api方法

[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "/GetStuff?userName={userName}&password={password}&howMany={howMany}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
Things[] GetStuff(string userName, string password, int howMany);

通过 https 将用户名和密码作为查询字符串的一部分发送是安全的,还是有更好的身份验证方式?

【问题讨论】:

  • 网址存储在网络服务器日志、浏览器历史记录等中。如果您认为这是安全的,那么您就有了答案……总有更好的方法

标签: c# api rest wcf authentication


【解决方案1】:

不,他们不是。正如评论中提到的,如果有人窃取了您的日志,他们可以访问所有查询参数。 (在您的情况下,敏感信息)。

查询参数(正确地)用于无幂请求(如GET)以过滤您的结果集。

另一方面,标头值是安全的。这就是我们通常发送身份验证/授权标头而不是查询参数的原因。

查看authorization header 以获取此示例。

HTTP Authorization 请求标头包含向服务器验证用户代理的凭据,通常但不一定在服务器响应 401 Unauthorized 状态和 WWW-Authenticate 标头之后。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 2018-02-04
    • 2013-08-17
    • 2021-07-27
    • 2010-09-24
    • 1970-01-01
    • 2010-10-24
    相关资源
    最近更新 更多