我需要在我的应用程序中修复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只会有:其中'value'将包含要在html(包括html字段)上呈现的最终jason。我们是否需要在jason字符串上使用反犹太法来应用XSS解决方案,或者jason数据已经安全地免受XSS攻击,并且类似的东西已经作为jason中的文本出现了?我应该在哪里为json案件解决这个问题?