我需要在我的应用程序中修复 XSS 问题。现在我是 JSON 和 XSS 的新手。我想到了两种可能发生攻击的方式 - 首先是通过 html 输入控件(文本框/区域等)或通过 url 中可见的请求参数(GET)。请建议我是否在这里遗漏了什么?
我正在考虑使用 AntiSamy (https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project)。我正在考虑创建一个自定义标签,其中包含 html 控件的值,例如
<input type="text" NAME="name" value="<mytag:xssclean><c:out value= escapeXml="false"/></mytag:xssclean>
这个标签类实际上会使用 antisamy 来扫描 html 内容。这是否会在将这些参数发送到控制器类然后最终发送到数据库之前对输入到文本框/区域的任何恶意 javascript 内容进行编码?还是只对来自控制器类的内容进行编码以在 jsp 上呈现?
这是正确的方法吗?我什么时候需要在 java 端(通过使用 antisamy 直接验证的控制器类)与在 jsp(带有新标签)上进行验证?
此外,我有许多 jsp,它们没有带有 html 控件的直接表单字段,但它们的结构是动态创建的,并且将 jason 字符串提供给 jsp。jsp 将简单地具有 : where 'value' 将包含要在 html 上呈现的最终 jason(包括 html 字段)。我们是否需要在 jason 字符串上使用 antisamy 应用 XSS 解决方案,或者 jason 数据已经免受 XSS 攻击,并且类似的东西已经作为文本存在于 jason 中?对于 json 案例,我应该在哪里解决这个问题?