2023年6月20日发(作者:)
CSRF攻击防范Token解决攻击过程和原理1. ⽤登录⼝令成功登录系统A,保留A系统cookie到浏览器。2. 登录另⼀系统B,B系统对A系统进⾏post数据提交(也可以对get请求发起类似的攻击,如果A系统对get请求也进⾏数据更新的话,这种风险有可能会发⽣),对系统数据进⾏更新。 n 攻防 防护 a) 使⽤Referer判断,判断请求头中的域名和配置的是否⼀致(IE5应该可以篡改Referer的值.⿊客攻击时可能修改浏览器⾃动⽣成的Header头中的Referer,所以不能完全保证,同时referer验证还有其他问题)。 b) 使⽤Token判断,⽤户登录时根据⽤户名和密码等加密⽣成⼀个Token值,同时写⼊到浏览器的Cookie和Hidden中,然后根据每次的请求将Token和Cookie同时带⼊到服务端进⾏验证和判断。 d) 中使⽤@rgeryToken(),框架⾃⼰会在Reponse时写⼊Cookie和Hidden的的Token值,在需要验证的Action上标记[ValidateAntiForgeryToken],在提交数据时框架会⾃动进⾏验证。 MVC 使⽤Token解决⽅法3. 在加密和解密时使⽤了加密和解密算法,所以对于单台服务器的话不⽤单独配置算法,有负载均衡的应⽤,对于⽣成token和提交验证token可能落在不同的服务器上,所以需要统⼀算法,否则会报【异常信息=⽆法解密防伪标记。如果此应⽤程序由 WebFarm 或群集承载】,需要在配置⽂件中增加 decryptionKey="280450BB36319B474C996B506A95AEDF9B51211B1D2B7A77" decryption="3DES" validation="SHA1"/> /// form提交时hidden中的Token被⾃动提交,在ajax中需要单独传⼊Token,Cookie内容会⾃动携带var token = $("[name='__RequestVerificationToken']").val() || "";var useHeaders = {};useHeaders["authToken"] = token; $.ajax({ url: url, type: "POST", data: || {}, dataType:"json", headers: useHeaders || {},}); 参考
发布者:admin,转转请注明出处:http://www.yc00.com/news/1687249434a9.html
评论列表(0条)