从服务器收到的Cookie是安全的但发送到服务器的Cookie不是安全的ASP.NET

Raj*_*esh 3 asp.net security session-cookies asp.net-session

在我的ASP.NET Web应用程序中,我做了以下更改,通过将以下条目添加到web.config来使ASP.NET_SessionID和.ASPXAUTH Cookie安全

<httpCookies httpOnlyCookies="true" requireSSL="true" />
Run Code Online (Sandbox Code Playgroud)

并添加以下标签

<forms requireSSL ="true" /> 
Run Code Online (Sandbox Code Playgroud)

但我的问题是,从服务器收到的Cookie(网络 - > Cookies->方向列的值为已接收)将Secure和HttpOonly标志设置为true.使用IE 11 Developer工具调试时发现信息,但发送到服务器的Cookie数据(网络 - > Cookies->方向列的值为已发送)没有任何Secure或HttpOnly标志设置为true.

这是默认行为吗?如果是这样,为什么发送到服务器的数据没有设置Secure和HttpOnly标志?除了对配置文件所做的上述更改之外,如何设置它.

CBH*_*ing 6

Cookie标记(如Secure和HttpOnly)仅从服务器发送到客户端.你不会在交通中看到他们的另一种方式.如果您想确保cookie是安全的,请让浏览器通过HTTP(而不是HTTPS)发出请求,并查看cookie是否仍然存在(它不应该存在).如果您想确保cookie是HttpOnly,请在浏览器中打开您的站点,然后document.cookie在开发工具中检查使用JS控制台的值; 您应该看到任何非httponly cookie但没有httponly cookie.

Cookie本质上是客户端的事情.它们是服务器告诉客户"每次向我发出请求时,包括这些信息"的一种方式.安全标志修改为"每次通过安全连接向我发出请求时,请包含此信息(但不要在不安全的连接上泄露)".符合要求的用户代理 - 也就是说,Web浏览器 - 应该遵守这些指令.但是,没有相反的指令; 服务器不必对客户端发送的cookie做任何事情,并且没有"客户端在服务器上设置cookie"等同于服务器在客户端上设置cookie的方式.指令(包括Secure,HttpOnly,Domain,Expires等)仅在设置 cookie时使用.