我正在创建一个使用HTTPS的基于API的安全web;然而,如果我允许用户配置它(包括发送密码)使用查询字符串这也将是安全的,或者我应该强制它通过POST?
当前回答
是的,只要没人越过你的肩膀看显示器。
其他回答
是的。HTTPS会话的整个文本都由SSL保护。这包括查询和报头。在这方面,POST和GET完全相同。
至于你的方法的安全性,没有经过适当的检查,也很难说。
是的,从建立HTTPS连接的那一刻起,一切都是安全的。查询字符串(GET)作为POST通过SSL发送。
From a "sniff the network packet" point of view a GET request is safe, as the browser will first establish the secure connection and then send the request containing the GET parameters. But GET url's will be stored in the users browser history / autocomplete, which is not a good place to store e.g. password data in. Of course this only applies if you take the broader "Webservice" definition that might access the service from a browser, if you access it only from your custom application this should not be a problem.
所以使用post至少密码对话框应该是首选的。另外,正如littlegeek在链接中指出的那样,GET URL更有可能写入你的服务器日志。
我不同意关于……的说法。Slough响应中的HTTP引用泄漏(目标页面中的外部图像可能泄漏密码)。
HTTP 1.1 RFC明确声明:
客户不应包括推荐人 (非安全)HTTP中的报头字段 请求参考页是否为 通过安全协议传输。
无论如何,服务器日志和浏览器历史记录是不将敏感数据放入查询字符串的充分理由。
是的,它是。但是对敏感数据使用GET是一个坏主意,原因如下:
主要是HTTP引用泄漏(目标页面中的外部图像可能泄漏密码[1]) 密码将存储在服务器日志中(这显然很糟糕) 浏览器中的历史缓存
因此,即使Querystring是安全的,也不建议通过Querystring传输敏感数据。
虽然我需要注意的是,RFC声明,浏览器不应该发送从HTTPS到HTTP的引用。但这并不意味着糟糕的第三方浏览器工具栏或HTTPS网站的外部图像/flash不会泄露它。
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 在Cygwin中对HTTPS URL运行wget时,如何修复证书错误?
- CFNetwork SSLHandshake iOS 9失败
- HTTPS和SSL3_GET_SERVER_CERTIFICATE:证书验证失败,CA is OK
- c#忽略证书错误?
- 如何找出如果你使用HTTPS没有$_SERVER['HTTPS']
- 将值附加到查询字符串
- 最好的方法在asp.net强制https为整个网站?
- 如何允许本地主机上的Apache使用HTTPS ?
- 如何让Chrome允许混合内容?
- 无法识别的SSL消息,明文连接?异常
- PHP获取网站URL协议- http vs https
- 如何转义哈希字符在URL
- 自动HTTPS连接/重定向使用node.js/express