网络安全
2020-06-23 本文已影响0人
BlueFishMan
白帽子兵法
- Secure By Default 原则
- 黑名单、白名单
- 端口,默认端口
- 在网站的生产环境服务器上,软件
- 用户提交
- 通配符*
- 最小权限原则
- 黑名单、白名单
- Defense in Depth 原则(纵深防御原则)
- 数据与代码分离原则
- 不可预测性原则
- 不可预测性(Unpredictable),能有效地对抗基于篡改、伪造的攻击
客户端脚本安全
浏览器安全
- 同源策略(Same Origin Policy)
- Different protocol,host,port
- 跨域资源共享CORS(Cross-origin resource sharing)
- HTTP头
- Access-Control-Allow-Origin: *
- 浏览器沙箱(Sandbox)
- 恶意网址拦截
- https://developers.google.com/safe-browsing/
- EV SSL 证书(Extended Validation SSL Certificate)
- 高速发展的浏览器安全
- IE8->XSS Filter
- Firefox->Content Security Policy(CSP)
- 畸形URL
跨站脚本攻击(XSS, Cross Site Script)
黑客通过"HTML注入"篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览的一种攻击
- IE8->XSS Filter
- Firefox->Content Security Policy(CSP)
跨站请求伪造(CSRF, Cross Site Request Forgery)
攻击者利用用户的身份操作用户账户的一种攻击方式
- 验证码
- Anti CSRF Token(保密性,随机性)
点击劫持(ClickJacking)
服务器端应用安全
注入攻击
本质是把用户输入的数据当做代码执行
- 用户能够控制输入
- 原本程序要执行的代码,拼接了用户输入的数据
SQL注入
- 使用预编译语句,绑定变量
- 检查数据类型
- 使用安全函数
文件上传漏洞
- 文件上传的目录设置为不可执行
- 判断文件类型
- MIME Type
- 后缀检查
- 使用随机数改写文件名和文件路径
- 单独设置文件服务器的域名
分布式拒绝服务(DDOS, Distributed Denial of Service)
利用合理的请求造成资源过载,导致服务不可用
- 网络层DDOS(伪造大量的源IP地址)
- 应用层DDOS(真实的IP地址)
- 限制请求频率
- 代理服务器
- CAPTCHA(Completely Automated Public Turing Test to Tell Computers and Humans Apart,全自动区分计算和人类的图灵测试)
密码
密码
- 强Hash算法
- No Base64编码、对称加密,Yes 单向Hash
- MD5消息摘要算法(Message-Digest Algorithm),SHA安全散列算法(Secure Hash Algorithm),彩虹表(rainbow table)
- 加盐(salt),增加随机性,防止彩虹表
- BCrypt,强Hash算法,专门为密码存储而设计的算法
- No 明文显示、发送、存储
- No 限制
重置密码
- 找回密码就是让用户重置密码
- 可以随机生成一个新的 一次性的(这点很重要)密码,然后把这个密码发送给用户
- 重置密码之前,如果用户提供了错误的邮件地址,不要提示他
- 重置密码的时候,识别用户最好依靠邮件地址,而不是用户名
- 如果条件允许,重置密码之前,最好请用户回答一些个人问题,或者采用 2FA 验证,比如短信验证码
- 最后,不要忘了记录 IP 地址,在邮件里面告诉用户,哪个 IP 地址在申请重置你的密码