网络安全

白帽子兵法

  1. Secure By Default 原则
    • 黑名单、白名单
      • 端口,默认端口
      • 在网站的生产环境服务器上,软件
      • 用户提交
      • 通配符*
    • 最小权限原则
  2. Defense in Depth 原则(纵深防御原则)
  3. 数据与代码分离原则
  4. 不可预测性原则
    • 不可预测性(Unpredictable),能有效地对抗基于篡改、伪造的攻击

客户端脚本安全

浏览器安全

  1. 同源策略(Same Origin Policy)
    • Different protocol,host,port
    • 跨域资源共享CORS(Cross-origin resource sharing)
      • HTTP头
      • Access-Control-Allow-Origin: *
  2. 浏览器沙箱(Sandbox)
  3. 恶意网址拦截
    • https://developers.google.com/safe-browsing/
    • EV SSL 证书(Extended Validation SSL Certificate)
  4. 高速发展的浏览器安全
    • 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 地址在申请重置你的密码

你可能感兴趣的:(网络安全)