我有以下流程:与查询参数的URL,运行在服务器端的一些逻辑,然后使用模板引擎存根HTML页面XSS预防传递给JS代码文件参数
-
产生
- 包含一个JavaScript文件,它执行主逻辑。
<script>
标记包含一个JS对象,该对象具有此JS代码的参数,部分取自查询参数。
现在我想清理我收到的参数,以防止XSS注入。这个问题,其中一个参数是一个令牌,所以我不想过于严格的验证(只是不允许所有可能的XSS字符听起来太严格),但我发现大多数库处理纯HTML,而不是JS代码(在<script>
标签内)。当我阅读所有的正则表达式解决方案时,我也感到有点不安,因为我在处理安全性(有单元测试而不是一堆正则表达式)时,信任开源的库。
关于图书馆的任何建议&可能的方法?我们在JVM环境中运行。
我认为你可以html编码你的查询字符串参数,然后你可以安全地显示它们到你的html响应页面。在Java中,你可以使用org.apache.commons.lang.StringEscapeUtils –
所以你传递的URL参数作为JS obejct属性的值,是否正确? – mjsarfatti
@mjsarfatti这是正确的 –