【发布时间】:2009-07-08 18:47:23
【问题描述】:
我有一些由用户从模板创建的 aspx 页面。包括一些字符串替换(任何带有 ${fieldname} 的),所以模板的一部分看起来像这样:
<%
string title = @"${title}";
%>
<title><%=HttpUtility.HtmlEncode(title) %></title>
当从此模板创建一个 aspx 文件时,${title} 将被用户输入的值替换。
但很明显,他们可以通过关闭输入字符串中的双引号来注入任意 HTML。我该如何解决这个问题?我觉得这应该很明显,但我无法解决这个问题。
我无法控制模板实例化过程——我需要接受这一点。
【问题讨论】:
标签: c# asp.net templates string escaping