这些跨站点脚本修复程序是如何工作的
本文关键字:何工作 工作 程序 站点 脚本 | 更新日期: 2023-09-27 18:24:03
我的代码据说已经清除了跨站点脚本漏洞。
例如:
<%# Eval("Name") %> (<%# Eval(" FriendlyId") %>)
修改为:
<%#: Eval("Name") %> (<%# Eval(" FriendlyId") %>)
和
<%= string.IsNullOrEmpty(SelectedPlan.VisionPlan.PlanCategory) ? "-" : SelectedPlan.VisionPlan.PlanCategory %>
修改为:
<%: string.IsNullOrEmpty(SelectedPlan.VisionPlan.PlanCategory) ? "-" : SelectedPlan.VisionPlan.PlanCategory %>
简单地添加这些冒号是如何防止跨站点脚本攻击发生的?
<%: >
是ASP.NET 4中引入的HTML编码输出的新语法。如果没有这种语法,你将不得不编写
<%= Server.HtmlEncode(Model.Content) %>
使用新语法可以以更可读和一致的方式表达相同的内容:
<%: Model.Content %>
Scott Guthrie解释了更多细节:
新的
<%: %>
语法提供了一种简洁的方式来自动对内容进行HTML编码,然后将其呈现为输出。它可以让你的代码变得不那么冗长,并且可以轻松地检查/验证你在整个网站上总是对内容进行HTML编码。这可以帮助保护您的应用程序免受跨站点脚本注入(XSS)和HTML注入攻击。
请参阅新建<%:%>ASP.NET 4(和ASP.NET MVC 2)中HTML编码输出的语法了解更多详细信息。