我有一些由用户从模板创建的aspx页面。包括一些字符串替换(点儿用$ {字段名}),所以模板的部分看起来像这样:从模板创建的页面中的字符串替换
<%
string title = @"${title}";
%>
<title><%=HttpUtility.HtmlEncode(title) %></title>
当从该模板创建一个aspx文件时,$ {标题}得到由取代为用户输入的值。
但显然他们可以通过在输入字符串中关闭双引号来注入任意HTML。我如何解决这个问题?我觉得这应该是显而易见的,但我无法解决这个问题。
我无法控制模板实例化过程 - 我需要接受它作为给定的。
你说得对,他们可以插入任一代码或html。 正如我在对其他答案的评论中所说的,我无法将它变成一个变量,所以很难在事后处理它。 此操作将由登录用户完成,而不是公众,因此它可能只是我可以生活的东西。但我希望有一种解决方法,以避免IT员工喋喋不休。 – Clyde 2009-07-08 19:26:38
你不控制将变量应用于模板的代码吗? – 2009-07-09 03:57:09