防止注入攻击的2中方式

来源:互联网 发布:crazybaby 知乎 编辑:程序博客网 时间:2024/05/17 22:46

http://www.html5china.com/js/jsadv/20120519_3712.html

方法 1:视图中的 HTML 编码

 

阻止 JavaScript 注入攻击的一种简单方法是重新在视图中显示数据时,用 HTML 编码任何网站用户输入的数据

如:<%=Html.Encode(feedback.Message)%>

使用 HTML 编码一个字符串的含意是什么呢?使用 HTML 编码字符串时,危险字符如 < 和 > 被替换为 HTML 实体,如 &lt; 和 &gt;。所以,当使用 HTML 编码字符串 <script>alert(“Boo!”)</script>时,它将转换为 &lt;script&gt;alert(“Boo!”)&lt;/script&gt;。浏览器在解析编码的字符串时不再执行 JavaScript 脚本。而是显示无害的页面

方法 2:写入数据库之前的 HTML 编码

除了在视图中显示数据时使用 HTML 编码数据,还可以在将数据提交到数据库之前使用 HTML 编码数据。第二种方法正是程序清单 4 中 controller 的情况。

如:

public ActionResult Create(string message)
{
// Add feedback
var newFeedback = new Feedback();
newFeedback.Message = Server.HtmlEncode(message);
newFeedback.EntryDate = DateTime.Now;
db.Feedbacks.InsertOnSubmit(newFeedback);
db.SubmitChanges(); 

 

// Redirect
return RedirectToAction(“Index”);
}

0 0
原创粉丝点击