它是安全使用这样的代码?

Response.Cookies[cookieName].Path = Request.ApplicationPath + "/";

我想知道关于所有角的情况下,请...

有帮助吗?

解决方案

总之,不,这不是安全的。用饼干路径充满了问题,因为他们是情况的敏感在即和铬,但不FF.这意味着任何不匹配在路径的情况下将东西的事情了。

  1. 当产生一个饼干,如果你设置不同的情况下从用户类型,浏览器不会保存它。

  2. 当用户返回,如果该路径他们进入不同的情况下,从第一次,浏览器不会提供饼干请求。

什么问题是你想到解决?

其他提示

如果应用程序在域中,Request.ApplicationPath == "/"的根延伸。因此,与您的代码,您的Cookie的路径将是//。你可以这样做解决此问题闪避:

cookie.Path = Request.ApplicationPath;
if (cookie.Path.Length > 1) cookie.Path += '/';

将正确地指出,你会希望确保您的应用程序强制URL的一致外壳(即重定向包含大写字母小写格式相当于所有的URL请求)。

除此之外,我认为你应该罚款这样做。如果你希望所有的饼干是“应用程序为作用域”,考虑创建这样的代码定制IHttpModule(或扩展global.asax.cs):

private void Application_EndRequest(object sender, EventArgs e)
{
    var app = (HttpApplication)sender;

    var cookiePath = app.Request.ApplicationPath;
    if (cookiePath.Length > 1) cookiePath += '/';

    foreach (string name in app.Response.Cookies.AllKeys)
    {
        var cookie = app.Response.Cookies[name];
        cookie.Path = cookiePath;
    }
}

没有,这不是安全的,对于将规定的原因。

但是...你可能要使用这种技术,以满足您的意图。

scroll top