martini框架中为什么向http头添加一个header就能防范xss攻击?


正在用Golang写一个简单的web框架,于是读了一下martini的源码,关于安全部分仔细看了看。martini框架有一个中间件用来提供安全防护,其中关于xss防御的部分只有一个函数,函数内容如下:


 Golang


 func applyXSS(opt Options, res http.ResponseWriter, req *http.Request) {
    if opt.BrowserXssFilter {
        res.Header().Add(xssProtectionHeader, xssProtectionValue)
    }
}

两个参数定义如下:


 Golang


 xssProtectionHeader = "X-XSS-Protection"
    xssProtectionValue  = "1; mode=block"

这是什么意思?为什么添加这个头就可以防御xss攻击了?

web go xss

旺仔牛奶丶 10 years ago

这只是让浏览器使用xss过滤器(比如不让URL中的东西被执行之类的。。),阻止一些比较明显的xss
然而可能被绕过,不能阻止所有类型的xss

http://drops.wooyun.org/tips/159
http://drops.wooyun.org/tips/1166

yuuhime answered 10 years ago

Your Answer