安全设计总结


跨站脚本 过滤特殊符号
sql注入
防重发 token
防篡改 md5
防伪造 数字签名 
暴力破解 时间和次数的限制
敏感信息加密
未授权访问,只能查看登录身份下的数据
密码控件
短信效验,图片效验,ip 效验,常用地区效验
struts 漏洞

什么是 CSRF 攻击
CSRF 代表跨站请求伪造, 这是一种攻击,迫使最终用户在当前通过身份验证的 Web 应用程序上执行不需要的操作

MD5 实际上是对数据进行有损压缩,无论数据有多长,1KB、1Mb 还是 1G,都会生成固定 128 位的散列值,
并且 MD5 理论上是不可能对编码后的数据进行还原的,即不可逆
被广泛应用于文件完整性验证、口令加密以及数字签名
------------------------------------------------
BASE64 常用来做转码,把二进制字节序列转化为 ASCII 字符序列
------------------------------------------------
加密方法
AES、RSA、SM4
------------------------------------------------
对称加密 - 防窃听
加密解密,密码一样
问题 : 交换密钥不方便
------------------------------------------------
非对称加密 - 防窃听
-----------------------------
加密场景
那么肯定希望只有我才能解密,别人只能加密, 即公钥加密,私钥解密
-----------------------------
签名场景
既然是签名,就希望只能我才能签名,别人只能验证, 即私钥签名,公钥验签
------------------------------------------------
数字签名
数字签名就是使用私钥对数据摘要进行签名,并附带和数据一起发送
接受者可以使用发送者的公钥解密,得到摘要1
再对原数据使用相同的散列函数计算摘要2,与摘要1进行对比,两者一致就说明信息未被篡改

可以起到防篡改、防伪造、防否认的作用

为什么要对数据的摘要进行签名,而不是直接计算原始数据的数字签名?
数据可能比较大,签名是使用非对称加密算法,比较耗时
防止第三方使用公钥解开签名后,拿到原始数据

一般做法是先将原数据进行 Hash 运算,得到的 Hash 值叫摘要
摘要就像人的指纹一样,可以代表一个人,只要内容发生了改变,计算出来的摘要也应该变化
摘要最好是不可逆转的,一般使用 MD5 作为 Hash 函数,MD5 输出的结果固定位 128 位

问题
公钥如何安全传递给接收者,防伪造,防篡改
通过第三方签名 - 数字证书
------------------------------------------------
数字证书
------------------------------------------------
数字证书就是由 CA 机构使用自己私钥,对证书申请者的公钥进行签名认证
数字证书解决了如何安全分发公钥的问题,防篡改防伪造,也奠定了信任链的基础

CA 会将证书的颁布机构, 有效期, 公钥, 持有者(subject) 等信息用 CA 的私钥进行签名
并且将签名结果和这些信息放在一起,叫数字证书

接收者 使用 CA 的公钥进行验签
CA 的公钥也是需要使用证书来分发的,所以接收者的电脑必须安装 CA 的证书,证书里包含了 CA 的公钥
验证通过即证明这确实是 证书申请者 的证书,也就可以使用证书中包含的 证书申请者 的公钥
------------------------------------------------

------------------------------------------------
HTTPS 和 HTTP 的主要区别
------------------------------------------------
1. https 是需要申请证书的,http 不需要
2. https 的端口是 443,http 的端口是 80,两者的连接方式不同
3. http 传输是明文,https 是用 ssl 进行加密的,https 的安全性更高
------------------------------------------------

------------------------------------------------
跨域
------------------------------------------------
同源策略
同源是指协议,域名,端口号相同

当协议,域名,端口号 任意一个不相同时,视为不同域
跨域是指不同域之间相互请求资源,浏览器限制执行其他域名网站的脚本

同源策略限制
限制跨域资源访问,用于隔离潜在恶意文件的安全机制

同源策略限制内容
1.cookie LocalStorage IndexedDB 等存储性内容

2.DOM 节点

3.AJAX 请求不能发送

但有三个标签是允许跨域加载资源
1.<script src=“xxx” />

2.<img src=“xxx” />

3.<link href=“xxx” />
------------------------------------------------

------------------------------------------------
解决跨域
------------------------------------------------
跨域并不是请求发不出去,请求能发出去,服务端能收到请求并正常返回结果,浏览器会对请求域返回的响应信息检查 HTTP 头,如果 Access-Control-Allow-Origin 包含了自身域,则表示允许访问。否则报错

实现跨域的方式有多种,比如 JSONP CORS http-proxy nginx
------------------------------------------------


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叫我三师弟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值