它是安全使用要求。ApplicationPath饼干路径
-
22-09-2019 - |
题
它是安全使用这样的代码?
Response.Cookies[cookieName].Path = Request.ApplicationPath + "/";
我想知道关于所有角的情况下,请...
解决方案
总之,不,这不是安全的。用饼干路径充满了问题,因为他们是情况的敏感在即和铬,但不FF.这意味着任何不匹配在路径的情况下将东西的事情了。
当产生一个饼干,如果你设置不同的情况下从用户类型,浏览器不会保存它。
当用户返回,如果该路径他们进入不同的情况下,从第一次,浏览器不会提供饼干请求。
什么问题是你想到解决?
其他提示
如果应用程序在域中,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;
}
}
没有,这不是安全的,对于将规定的原因。
但是...你可能要使用这种技术一>,以满足您的意图。
不隶属于 StackOverflow