网络安全

请求安全

1.Token,传输token代替用户名和密码。向授权用户返回Token时,同时带上Token过期时间。
2.签名,约定签名生成算法,我在提交积分流程中做法是,客户端对一些参数的某进行加盐MD5,服务端同样对这些参数的某进行加盐MD5。在服务端判断若结果相同则鉴权成功。其中的盐由服务端根据客户端设备标识动态生成,返回给客户端。
3.随机数,服务端记录由随机数标识的请求,防止重复请求。
4.时间戳,服务端对例如大于5分钟时间差的请求直接拒绝,否则再结合随机数参数判断处理请求。

https://www.cnblogs.com/PerkinsZhu/p/9713836.html

数据加密算法

1.单向加密:MD5、SHA、HMAC,不可逆不能解密。信息摘要算法目的是用来校验文件/数据是否和原始数据一致,可以作为计算sign签名的算法。
2.(双向)对称加密:DES、AES、PBE,加密和解密使用相同的密钥。
3.(双向)非对称加密:RSA、DH,公钥和私钥互为加解密钥。
公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。加密和解密使用的是两个不同的密钥,这种算法叫作非对称加密算法。非对称加密安全性更好,缺点是加密和解密速度慢,只适合对少量数据进行加密。

编码算法

Base64、URL密码,目的是为了解决部分网络传输不支持不可见字符的问题。通过Base64编码把数据流转化为可打印显示的安全字符,之后通过网络进行传输。应用场景:RSA的公钥为byte数组,可以通过Base64编码把byte数组转换为字符串,然后传给客户端。
ProtoBuf,

HTTPS

SSL或TSL,位于应用层和传输层之间。 非对称加密算法在一些情况下会与对称加密算法一起使用,HTTPS 就是一个典型的应用场景。 简单说就是: 部分过程是一方先生成一个对称加密密钥,然后通过非对称加密的方式来发送这个密钥,这一步是确定对称密钥,之后双方的数据通信就可以用对称加密这种高效率的算法进行加解密了。

TCP三次握手四次挥手详解
https://www.cnblogs.com/zmlctt/p/3690998.html

HTTPS加密过程和TLS证书验证
https://www.jianshu.com/p/f6b34381beac

Web安全

客户端跨站点脚本攻击(XSS)和请求伪造(CSRF)。
服务端SQL注入和基于条件的SQL攻击。
服务端分布式拒绝服务(DDOS)攻击:
服务端会话固定(Session Fixation)攻击:

密码加密

HTTP 可以直接注入脚本,直接拿到用户输入的密码。但是注入脚本就是代价,只要能够提高一点点门槛就有意义。前端加密密码虽然不能防劫持,但是在若被劫持后能提高泄漏明文的难度。
方案1:前端提交Md5加密的密码。后端存储Md5二次加密的密码。

Web前端密码加密是否有意义?
https://blog.csdn.net/xl_lx/article/details/79075386

发表评论