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

Mechanism to automatically HTML escape variable output in Classic ASP?

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

示例:

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

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

我的objective是为了避免随地乱扔Server.HtmlEncode()

<%=...%>

...是一种将 ASP 值注入 HTML 文档的方法...

我的理解是它们不能在 ASP 部分中使用: <%...%>

您需要的是:

<% ASP script that gets variables %>
<html><body>
<h1><%= ASP_variable %></h1>

我也不清楚您为什么要尝试将脚本引入标题元素。

不幸的是,我不知道在经典 ASP 中有什么简单的方法可以做到这一点。据我所知,没有内置标签可以自动进行 html 编码。

您可以使用 Server.HTMLEncode() 和 Server.URLEncode(),或者您可以创建自定义函数,例如 h() 和 u() 来调用它们,至少使其更短,但是我想就是这样。还要注意,当写入 javascript 上下文时,这些是不够的,并且在 ASP 中没有合适的 javascript 字符串编码器用于

<script>
  var x = <%= myVar %>;
</script>

很难在 ASP 中改进安全性(我想这就是您所追求的)。