Я разрабатываю httphandler для обработки некоторых запросов в веб-формах (НЕ в MVC).
Как я могу реализовать анти-межсайтовый скриптинг (например, защиту от подделки в MVC)?
Я хочу больше узнать о механизме защиты от подделки в MVC. .
Реализация AntiForgery в Asp.net Forms
comment
Все полезные классы/методы являются закрытыми, защищенными или внутренними, поэтому они не используются вне приложения ASP.NET MVC.
- person Darin Dimitrov   schedule 20.07.2010
comment
anticsrf.codeplex.com
- person Steven   schedule 11.01.2011
Ответы (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 довольно безопасен, с ним есть некоторые недостатки. Подробнее об этом можно прочитать здесь.
person
Steven
schedule
20.07.2010
Спасибо, я также реализовал эти разделы: 1- Проверка метода http на POST. 2- Проверка того, что UrlRefferrer является тем же доменным именем. 3- я добавлю ваше решение. Если хакер изменит свой DNS во время просмотра веб-приложения, может ли это быть опасным или нет?
- person Amir Pournasserian; 20.07.2010