在我的ASP.NET Web应用程序中,通过将以下条目添加到web.config中,我进行了以下更改以使ASP.NET_SessionID和.ASPXAUTH Cookies安全。
<httpCookies httpOnlyCookies="true" requireSSL="true" />
并添加以下标签
<forms requireSSL ="true" />
但是我的问题是,从服务器接收的Cookies(网络-> Cookies->方向列的值为接收)将Secure和HttpOonly标志设置为true。我在使用IE 11 Developer工具进行调试时找到了信息,但是发送到Server(网络-> Cookies->方向列的值为“已发送”)的cookie数据没有将任何Secure或HttpOnly标志设置为true。
这是默认行为吗?如果是这样,为什么发送到服务器的数据没有设置Secure和HttpOnly标志?除了上述对配置文件所做的更改以外,如何设置它。
Cookie标志(例如Secure和HttpOnly)仅从服务器发送到客户端。您将再也看不到他们的流量了。如果要确保Cookie是安全的,请让浏览器通过HTTP(而不是HTTPS)发出请求,并查看Cookie是否仍然存在(不应存在)。如果要确保cookie是HttpOnly,请在浏览器中打开您的网站,然后document.cookie
在开发工具中检查使用JS控制台的值;您应该会看到任何非httponly cookie,但没有httponly cookie。
Cookies本质上是客户端。它们是服务器告诉客户端“每次您向我发送请求时,都包含此信息”的一种方式。Secure标志修改为说“每次您通过安全连接向我发送请求时,都包含此信息(但永远不要在不安全的连接上泄露它)”。合格的用户代理(即Web浏览器)应该遵守这些指令。但是,没有其他等效的指令。服务器不必对客户端发送的Cookie进行任何处理,也没有“客户端在服务器上设置Cookie”的等效方法,即服务器可以在客户端上设置Cookie的方式。指令(包括安全,HttpOnly,域,过期等)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句