通过HTTP头部字段防御措施整理
X-Frame-Options #反劫持
X-XSS-Protection #开启浏览器防XSS功能
Set X-Frame-Options
CSP
X-Content-Type-Options: nosniff #改会影响浏览器的行为,过滤掉敏感文件
Content-Encoding #Breach攻击
robots.txt
注入
预编译
文件上传
后端代码限制上传的文件类型(类型&后缀)和大小
强制给上传的文件添加后缀名
命令执行
禁用或过滤代码执行函数
XSS
对cookie的保护
对重要的cookie设置httpOnly, 防止客户端通过document.cookie读取cookie。服务端可以设置此字段。
对用户输入数据的处理
编码/解码:不能对用户输入的内容都保持原样,对用户输入的数据进行字符实体编码,原样显示内容必须解码
正则匹配
过滤:把输入的一些不合法的东西都过滤掉,从而保证安全性。如移除用户上传的DOM属性,如onerror,移除用户上传的Style节点,iframe, script节点等
对指向资源处理
nofollow技术
CSRF
验证 HTTP Referer 字段
在请求地址中添加 Token 并验证
在 HTTP 头中自定义属性并验证
XXE
使用开发语言提供的禁用外部实体的方法 PHP libxml_disable_entity_loader(true); JAVA DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setExpandEntityReferences(false); Python 过滤用户提交的XML数据 过滤关键词:<!DOCTYPE和!ENTITY,或者SYSTEM和PUBLIC
poodle漏洞
修复方案参考:(三选一即可) (1)禁用443端口(如不需要使用该端口) (2)防火墙屏蔽对443端口的访问(或设置白名单访问策略,限制为部分IP访问该端口) (3)对SSLv3版本禁用,具体针对服务部分,可参考如下建议: 1.stunnel服务修复:/usr/sbin/stunner /etc/xensourse/xapi-ssl.conf 在xapi-ssl.conf钟compression=zlib后面加入一行 options=NO_SSLv3 重启stunnel 2.tomcat服务修复:https://www.cnblogs.com/lsdb/p/7193291.html 检测是否生效:可以是通过在线检测工具https://wosign.ssllabs.com/(外网)来进行检测;https://www.cnblogs.com/Bluesky-bk/p/10059991.html(内网) 3.apache禁用:http://www.heminjie.com/network/2132.html 4.nginx禁用:http://www.heminjie.com/network/2132.html 5.IIS禁用:https://www.daimabiji.com/serverknowledge/234.html