1、配置响应头(X-Content-Type-Options、X-Frame-Options、X-XSS-Protection)
server{
add_header X-Frame-Options SAMEORIGIN;
add_header X-XSS-Protection '1;mode=block';
add_header X-Content-Type-Options nosniff;
}
注:
X-Frame-Options:
有些资源的Content-Type是错的或者未定义。这时,某些浏览器会启用MIME-sniffing来猜测该资源的类型,解析内容并执行。
X-Frame-Options三个参数:
1、DENY 表示该页面不允许在frame中展示,即便是在相同域名的页面中嵌套也不允许。
2、SAMEORIGIN 表示该页面可以在相同域名页面的frame中展示。
3、ALLOW-FROM uri 表示该页面可以在指定来源的frame中展示。
X-XSS-Protection头的三个值
0: 表示关闭浏览器的XSS防护机制
1:删除检测到的恶意代码, 如果响应报文中没有看到X-XSS-Protection 字段,那么浏览器就认为X-XSS-Protection配置为1,这是浏览器的默认设置
1; mode=block:如果检测到恶意代码,在不渲染恶意代码
不指定X-Frame-Options的网页等同表示它可以放在任何iFrame内。
X-Frame-Options可以保障你的网页不会被放在恶意网站设定的iFrame内,令用户成为点击劫持的受害人。
2、请求方法拦截(GET|POST|HEAD以外的请求无法访问)
server{
if ($request_method !~* GET|POST|HEAD) {
return 403;
}
}
3、sql 注入拦截
server{
if ($query_string ~* ".*('|--|union|insert|drop|truncate|update|from|grant|exec|where|select|and|or|count|chr|mid|like|iframe|script|alert|webscan|dbappsecurity|style|confirm|innerhtml|innertext|class).*")
{ return 500; }
if ($uri ~* .*(viewsource.jsp)$) { return 404; }
if ($uri ~* .*(/~).*) { return 404; }
}
4、页面拦截
location /web.config {
return 403;
}
|