ASP.Net MVC 当中XSS攻击的防范
XSS攻击的防范 什么是XSS攻击? XSS攻击中文为跨站脚本攻击,这种攻击方式分为两种:
被动注入 在被动注入当中,用户将“不干净”的内容输入到文本框中,这些数据又会保存在数据库中,以后又重新在页面上面显示。
主动注入 用户把内容输入到文本框当中,这些内容会立即在屏幕当中显示出来。
MVC中如何阻止XSS攻击? 对所有内容进行HTML编码 只需要在视图当中使用@Html.Encode与@Html.AttributeEncode方法对特性值的编码转换。 对于已经“净化”或者来自信任的数据源,我们可以使用@Html.Raw(Model.HtmlContent)辅助输出。
使用AntiXSS库作为ASP.Net的默认编码器 Install-Packeg AntiXSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 @using Microsoft.Security.Application @{ ViewBag.Title = "HomePage" } @section featured{ <section class="featured"> <div class="title"> <hgroup class="content-wrapper"> <h1>@ViewBag.Title.</h1> <h2 id="welcome-message"></h2> </hgroup> </div> </section> } @section scripts{ @if(ViewBag.UserName != null){ <script type="text/javascript"> $(function(){ var msg = 'Welcome,@Encoder.