有没有办法在ASP模板中自动HTML转义输出,就像Django或Jinja2模板一样?
示例:
<h1><%= title %></h1>
如果title = "<script>alert()</script>"
,则输出仍为<h1><script>alert()</script>
。
我的目标是避免在任何地方乱丢Server.HtmlEncode()
。
答案 0 :(得分:1)
遗憾的是,我不知道在经典ASP中这么简单。据我所知,没有内置标签可以自动执行html编码。
您可以使用Server.HTMLEncode()和Server.URLEncode(),或者您可以使用h()和u()这样的自定义函数来调用它们,至少缩短它们,但我认为这就是它。还要注意,当写入javascript上下文时,这些是不够的,并且ASP中没有适当的javascript字符串编码器,例如
<script>
var x = <%= myVar %>;
</script>
在ASP中改进安全性很难(我想这就是你所追求的)。
答案 1 :(得分:-3)
<%=...%>
...是一种将ASP值注入HTML文档的方法......
我的理解是它们不能在ASP部分中使用: &LT;%...%&GT;
您需要的是:
<% ASP script that gets variables %>
<html><body>
<h1><%= ASP_variable %></h1>
我也不清楚为什么你似乎试图将一个脚本引入Heading元素。