有没有办法重命名RequestVerificationToken cookie名称?

Pau*_*yer 10 security cookies asp.net-mvc antiforgerytoken

使用ASP.net MVC v2.0,有什么方法可以更改__RequestVerificationTokencookie 的名称?为了隐藏我们的底层技术堆栈,我想将cookie重命名为无法追溯到ASP.Net MVC的东西.

有关Steve Sanderson博客的更多信息.

Ale*_*lex 28

ASP.NET MVC 3和4允许您通过设置静态AntiForgeryConfig.CookieName属性来更改cookie名称.(Msdn 在这里参考)

我知道这个问题具体涉及ASP.NET MVC 2,但是这个问题仍然在搜索引擎排名上高回合适当的查询,例如"ASP.NET MVC AntiForgeryToken cookie name".我想我会在这里添加信息,像我一样,从反编译拯救他人的ASP.NET MVC 3 +源代码.

  • 不幸的是,没有相应的更改隐藏的输入名称`__RequestVerificationToken`. (6认同)

lan*_*der 3

查看 MVC 2 源代码,我认为不可能更改 cookie 名称。AntiForgeryData 类启动:

private const string AntiForgeryTokenFieldName = "__RequestVerificationToken";
Run Code Online (Sandbox Code Playgroud)

并获取它刚刚调用的 cookie 名称:

string cookieName = AntiForgeryData.GetAntiForgeryTokenName(ViewContext.HttpContext.Request.ApplicationPath);
Run Code Online (Sandbox Code Playgroud)

在 HtmlHelper 类中。它获取应用程序路径并将其转换为基数 64,并将其附加到 __RequestVerificationToken 的末尾,这就是您在查看源代码时看到的内容。

如果您确实需要更改名称,我建议您从 codeplex 下载 MVC 2 源代码,并查看使用源代码作为参考来创建您自己的 html 帮助器和防伪令牌。但在这样做的过程中,你总是可能会引入自己的错误......