最近帮别人“擦屁股”,做了全局CSRF漏洞修复,针对各种表单,作如下分享(html 为通用方法):
#############################
1.webform
这种情况只需加载一个DLL(Idunno.AntiCsrf.dll),配置web.config即可。
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="csrfSettings" type="Idunno.AntiCsrf.Configuration.CsrfSettings, Idunno.AntiCsrf" />
</configSections>
<csrfSettings cookieName="__CSRFCOOKIE" formFieldName="form1" detectionResult="RaiseException" errorPage="" />
<system.web>
//iis6
<httpModules>
<add name="AntiCSRF" type="Idunno.AntiCsrf.AntiCsrfModule, Idunno.AntiCsrf"/>
</httpModules>
//iis7
<modules>
<add name="AntiCSRF" type="Idunno.AntiCsrf.AntiCsrfModule, Idunno.AntiCsrf"/></modules>
</system.web>
</configuration>
</xml>
另外一种方法,自己看链接去:
http://www.cnblogs.com/luminji/archive/2012/06/08/2511384.html
#############################
2.mvc
基本思路是利用Token解决,这里只提供思路
前台页面(cshtml):@Html.AntiForgeryToken()
后台(Controllers):[ValidateAntiForgeryToken](详细看别人的