本文目录一览:
- 1、浏览器的Xss过滤器机制是什么,为什么有些反射型Xss不会触发过滤器
- 2、java web开发如何有效的防止xss攻击
- 3、如何关闭跨站点脚本 (XSS) 筛选器
- 4、struts2的过滤器配置问题
浏览器的Xss过滤器机制是什么,为什么有些反射型Xss不会触发过滤器
首先要说明的是 它是webkit的一个模块,而非chrome ,所以Safari和360安全浏览器极速模式等webkit内核的浏览器都有XSS过滤功能.
过滤方式:
通过模糊匹配 输入参数(GET query| POST form data| Location fragment ) 与 dom树,如果匹配中的数据中包含跨站脚本则不在输出到上下文DOM树中.另外,匹配的规则跟CSP没有什么关系,最多是有参考,CSP这种规范类的东西更新速度太慢跟不上现实问题的步伐.
关闭模式:
因为它有可能影响到业务,所以浏览器提供了关闭它的HTTP响应头.
X-XSS-Protection: 0
绕过方式:
因为专门做这方面的原因所以对绕过也有所了解,目前我发布过的一个bypass 0day还可以继续使用.
svgscript xlink:href=data:,alert(1)/script/svg
java web开发如何有效的防止xss攻击
配置过滤器,再实现 ServletRequest 的包装类。
将所有的编程全角字符的解决方式。首先添加一个jar包:commons-lang-2.5.jar ,然后在后台调用函数。
如何关闭跨站点脚本 (XSS) 筛选器
这个错误是由于 IE8 的跨站脚本(Cross-site scripting, XSS)防护阻止了跨站发送的请求。
点击 IE8 的“工具”-“Internet 选项”,进入“安全”选项卡,打开“Internet”下方的“自定义级别”,在“安全设置”对话框中找到“启用 XSS 筛选器”,改为“禁用”即可。
struts2的过滤器配置问题
嗯,你这样是会报错,可以试着我的方法做一下
自己写一个过滤器,extends struts过滤器,然后在你自己的过滤器里写你不需要过滤的东西.代码如下:
package com.alyit.filter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.dispatcher.FilterDispatcher;
public class ExtendStrutsFilter extends FilterDispatcher
{
// 自定义的struts过滤器
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException,
ServletException
{
HttpServletRequest request = (HttpServletRequest) req;
String url = request.getServletPath();
// 不过虑的UrlList
ListString notFilterUrl = new ArrayListString();
notFilterUrl.add("/upload.jsp");
if (notFilterUrl.contains(url))
{
chain.doFilter(req, res);
}
else
{
super.doFilter(req, res, chain);
}
}
}
这是一种简单的设计思路,你自己可以照着改一下.