使用 Coldfusion 保护以 html 输出的用户输入
当用户搜索页面时,我将 ?q=[searchterm] 添加到我的 URL 并输出如下内容:
Your search result for <CFOUTPUT>#htmleditformat(URL.q)#</CFOUTPUT>:
不久前我读到 htmleditformat()
是不够的,XSS 仍然可以执行 (...例如,如果有人向受害者发送链接,例如 http://example.com/?q=[evilXSS])。
我还将 URL.q
保存到数据库(在本例中我使用 ORM):
<CFSET myobject.setKeyword(URL.q) />
但现在我感兴趣的是如何将用户数据安全地输出到浏览器。
When an user searchs a page I add ?q=[searchterm] to my URL and output something like this:
Your search result for <CFOUTPUT>#htmleditformat(URL.q)#</CFOUTPUT>:
A while ago I read that htmleditformat()
is not enough and XSS can still be executed
(... for example if somebody sends a link to a victim like http://example.com/?q=[evilXSS]).
I also save URL.q
to a database (I'm using ORM in this case):
<CFSET myobject.setKeyword(URL.q) />
but for now I'm intereseted how to securely output the userdata to the browser.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您还可以使用
xmlFormat()
,如这里。它转义的字符比htmlEditFormat()
更多,例如单引号和 159-255 范围内的高位 ASCII 字符。如果您想要更多控制,可以使用 Java StringEscapeUtils< /a> 直接。
You can also use
xmlFormat()
, described here. It escapes more characters thanhtmlEditFormat()
such as Single-quotation marks and high ASCII characters in the range 159-255.If you want more control you can use Javas StringEscapeUtils directly.