2012年3月1日 星期四

ASP.NET MVC如何避免CSRF攻擊

最近在研究web security
其中對於CSRF攻擊的介紹如下



至於在ASP.NET MVC 3 中要如何避免CSRF
可參考對岸朋友的這篇
http://kb.cnblogs.com/page/125667/
主要就是在Action前加上[ValidateAntiForgeryToken]
然後在相對應的view中加上@Html.AntiForgeryToken()
程式在執行的時候就會在cookie中產生一個像下面的token
例如: __RequestVerificationToken_Lw__=VjPo5qgNE7l5QSBoAe6FdD7/7Zh89aTW02jDYiAyJ+RmCxK5/KPMBrvkm8P/1PopvzaV9YvT08DgLNpcGu+ryEMRUNISZfhVlcl7eO3MbvXy68lGxZoR0U6mB/7yRzzPsMQ5HSkcwi7iKZnVzkCkPrSmCY6pYQimniihsxpLqCo=

然後在頁面post給action的時候
會多傳送一個token參數給action做識別
傳送參數如下:
__RequestVerificationToken=OOQLm1dSsAUruZiv1nM0gVr4tEPlxpZM2kTPTJMZGzLJAvv8VGdMqrtB0KwMXu%2BYbQiIkg%2FyNsGwtq%2FcIBSUill9pz4baRKy%2BkkptZiQpdWEy1SzqSHgicQz6T9jZUp2O759QuXTYu%2FWTpHSn6Ho5NQjyM%2Fd4PNRLG5WgUNyg3Q%3

可以利用Fiddler看一下form和cookie的變化。

沒有留言:

張貼留言