我正在开发一个httphandler来处理Web窗体中的一些请求(不是在MVC中) 我怎样才能实现反跨站点脚本(如MVC中的防伪)? 我想知道MVC中的防伪机制。
答案 0 :(得分:1)
如果您可以访问该页面,则可以使用该页面的ViewStateUserKey属性。以下是如何在页面中执行此操作的示例,但您将了解到这一点:
protected void Page_Init(object sender, EventArgs e)
{
// Validate whether ViewState contains the MAC fingerprint
// Without a fingerprint, it's impossible to prevent CSRF.
if (!this.Page.EnableViewStateMac)
{
throw new InvalidOperationException(
"The page does NOT have the MAC enabled and the view" +
"state is therefore vulnerable to tampering.");
}
this.ViewStateUserKey = this.Session.SessionID;
}
虽然ViewStateUserKey非常安全,但有一些简短的说法。您可以阅读有关here的更多信息。