在 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><script>alert()</script>
。
我的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 中改进安全性(我想这就是您所追求的)。
有没有办法在 ASP 模板中自动 HTML 转义输出,就像 Django 或 Jinja2 模板一样?
示例:
<h1><%= title %></h1>
如果title = "<script>alert()</script>"
,输出仍然是<h1><script>alert()</script>
。
我的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 中改进安全性(我想这就是您所追求的)。