个别cookie设置是否优先于web.config中的设置?

时间:2014-05-20 10:14:54

标签: java php .net cookies

假设我在web.config中的以下地方有以下内容:

<httpCookies requireSSL="true" />

默认情况下,这会将所有httpCookies设置为Secure。如果我有以下cookie:

var cookie = new HttpCookie("ResultsPerPage", "50");
cookie.Secure = false;
Response.Cookies.Add(cookie);
  1. 此Cookie是否将Secure设置为True或False?
  2. 如果我们尝试以这种方式设置HttpOnly,这是否也适用?
  3. 它是否也是相反的(requireSSL = "false"cookie.Secure=true)?
  4. 上述方法适用于.NET,但您也可以使用PHP和Java设置cookie。如果我在Java和PHP中使用类似的方法(web.xml / inline或php.ini /),结果与.NET相同吗?

1 个答案:

答案 0 :(得分:1)

使用浏览器的开发控制台检查HTTP响应标头和Cookie可以让您深入了解此问题。出于这个答案的目的,我使用了ASP.Net和Chrome浏览器。要回答您的问题 - 是的,单个cookie设置确实优先于web.config设置。

像这样设置配置 -

<httpCookies requireSSL="true" httpOnlyCookies="true"/>

在这样的响应标题中生成结果 -

response header config

和像这样的cookie -

cookies config

在代码中为各个Cookie设置首选项 -

var cookie = new HttpCookie("ResultsPerPage", "50");
cookie.Secure = false;
cookie.HttpOnly = false;
HttpContext.Response.Cookies.Add(cookie);

会产生这样的响应头 -

response header code

和像这样的cookie -

cookie code

您可以通过检查Cookie和响应标头来验证java和php是否具有相同的行为。

希望这有帮助。