java中的XSS漏洞

java中的XSS漏洞,java,Java,如何修复以下XSS漏洞问题 如何保护我的网站免受XSS漏洞的攻击 通过在网站的URL中添加javascript,将显示所有Cookie值 下面是由java脚本组成的URL的类似示例: >警报(document.cookie)用户目标= 为了克服这个问题,我在webserver 7.0的obj.conf文件中添加了以下文件管理器: Input fn=“插入过滤器” method=“POST” filter=“sed请求” sed=“s/(|%3e)/\\>/gi” 在obj.conf中进行这

如何修复以下XSS漏洞问题

如何保护我的网站免受XSS漏洞的攻击

通过在网站的URL中添加javascript,将显示所有Cookie值

下面是由java脚本组成的URL的类似示例:

>用户目标=

为了克服这个问题,我在webserver 7.0的obj.conf文件中添加了以下文件管理器:


Input fn=“插入过滤器”
method=“POST”
filter=“sed请求”
sed=“s/(|%3e)/\\>/gi”


在obj.conf中进行这些更改之后,问题仍然没有得到解决。请提出一些建议。

当您打印HTML时,只需在客户端(或服务器端,取决于您要打印的内容)中转义特殊字符,然后您就可以传递任何输入,而无需使用笨拙的正则表达式或其他类型的过滤器

例如:
假设我有一个变量可以接收一个
警报(document.cookie)
,当我打印时,我会做一些类似于

的事情,我尝试通过添加过滤器来做类似的事情,但没有成功。请您检查一下上面的过滤器是否需要修改。我可以看到,当用户输入数据时,您可能正在转义这些字符。这不是避免XSS的最安全的方法。避免XSS注入的真正有效方法是在将这些值打印到html(当与html直接接触时)时转义这些值。非常感谢您的回复。如果在weblayers中使用上述过滤器,则会破坏一些其他应用程序。所以,请您建议一些代码级别的更改以修复此漏洞。您使用哪些框架进行客户端输出?明智的做法是使用一个框架为您控制这一点,这样您就不必担心(如果生产是您必须的)。您可以使用struts 2、JSF和其他工具。我个人将struts 2用于我的应用程序,并将jstl(JSP标准标记库)用于缺少struts良好支持的流程(最后一次,您需要为来自客户端输入的每个输出选择一个html转义流程,因为struts已经为您提供了这一功能)。
Input fn="insert-filter"

method="POST"

filter="sed-request"

sed="s/(<|%3c)/\\< / gi"

sed="s/(>|%3e)/\\>/gi"