在Classic ASP中自动HTML转义变量输出的机制?

时间:2016-09-15 16:24:28

标签: html security asp-classic xss

有没有办法在ASP模板中自动HTML转义输出,就像Django或Jinja2模板一样?

示例:

<h1><%= title %></h1>

如果title = "<script>alert()</script>",则输出仍为<h1>&lt;script&gt;alert()&lt;/script&gt;

我的目标是避免在任何地方乱丢Server.HtmlEncode()

2 个答案:

答案 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元素。