MJingv / jehol-person-blog

Jehol's Blog 🙋 (hexo+react)
https://mjingv.github.io/JeholBlog/
0 stars 1 forks source link

安全问题相关 #16

Open MJingv opened 5 years ago

MJingv commented 5 years ago

xss

  1. csp
    1. CSP 本质上就是建立白名单,开发者明确告诉浏览器哪些外部资源可以加载和执行。我们只需要配置规则,如何拦截是由浏览器自己实现的。
    2. 开启方式
      1. 设置 HTTP Header 中的 Content-Security-Policy
        • 只允许加载本站资源
          Content-Security-Policy: default-src ‘self’
        • 只允许加载 HTTPS 协议图片
          Content-Security-Policy: img-src https://*
        • 允许加载任何来源框架
          Content-Security-Policy: child-src 'none'

          2 .设置 meta 标签的方式

          <meta http-equiv="Content-Security-Policy">

csrf

原理就是攻击者构造出一个后端请求地址,诱导用户点击或者通过某些途径自动发起请求。如果用户是在登录状态下的话,后端就以为是用户在操作,从而进行相应的逻辑

  1. 规则

    1. Get 请求不对数据进行修改
    2. 不让第三方网站访问到用户 Cookie
    3. 阻止第三方网站请求接口
    4. 请求时附带验证信息,比如验证码或者 Token
  2. 措施

    • SameSite

      可以对 Cookie 设置 SameSite 属性。该属性表示 Cookie 不随着跨域请求发送,可以很大程度减少 CSRF 的攻击,但是该属性目前并不是所有浏览器都兼容。


点击劫持

1.X-FRAME-OPTIONS 2.JS 防御

iframe 的方式加载页面时,攻击者的网页直接不显示所有内容了。


中间人攻击

数字签名

通过提供 可鉴别 的 数字信息 验证 自身身份 的一种方式。

签名 最根本的用途是要能够唯一 证明发送方的身份,防止 中间人攻击、CSRF 跨域身份伪造。基于这一点在诸如 设备认证、用户认证、第三方认证 等认证体系中都会使用到 签名算法

MJingv commented 5 years ago

加密算法

资料来源

浅谈常见的七种加密算法及实现

加密分类

  1. 加密算法分 对称加密非对称加密
  2. 对称加密算法的加密与解密 密钥相同,非对称加密算法的加密密钥与解密 密钥不同
  3. 不需要密钥 的 散列算法
    1. 常见的 对称加密 算法主要有 DES、3DES、AES 等
    2. 常见的 非对称算法 主要有 RSA、DSA 等
    3. 散列算法 主要有 SHA-1、MD5 等

对称加密

一句话理解

  1. 甲方选择某一种加密规则,对信息进行加密
  2. 乙方使用同一种规则,对信息进行解密

MD5

SHA-1

非对称加密

一句话理解

  1. 乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。
  2. 甲方获取乙方的公钥,然后用它对信息加密。
  3. 乙方得到加密后的信息,用私钥解密。

RSA