XSS攻击的防范
什么是XSS攻击?
XSS攻击中文为跨站脚本攻击,这种攻击方式分为两种:
在被动注入当中,用户将“不干净”的内容输入到文本框中,这些数据又会保存在数据库中,以后又重新在页面上面显示。
用户把内容输入到文本框当中,这些内容会立即在屏幕当中显示出来。
MVC中如何阻止XSS攻击?
只需要在视图当中使用@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.JavaScriptEncode(ViewBag.UserName,false)!';
$("#welcome-message").html(msg).hide().show('slow');
});
</script>
}
}
|