江苏盐城有做淘宝网站的吗,开发公司五一节前安全生产工作部署会,哈尔滨网站设计,网站前端设计理念1.HTTP协议直接传输密码#xff08;无加密#xff09;
前端 直接发送HTTP请求#xff08;无加密#xff09;#xff0c;攻击者可直接捕获网络包#xff0c;看到下面的明文信息 因此#xff0c;使用HTTP协议传输会直接暴露用户敏感信息。
2.HTTPS协议直接传输密码…1.HTTP协议直接传输密码无加密
前端 直接发送HTTP请求无加密攻击者可直接捕获网络包看到下面的明文信息 因此使用HTTP协议传输会直接暴露用户敏感信息。
2.HTTPS协议直接传输密码加密传输
后来人们提出了HTTPS协议HTTPS协议利用TLS/SSL协议进行加密。
那么使用HTTPS协议直接传输密码加密传输——对称加密/非对称加密就一定是安全的吗
对称加密存在的缺点 前后端加密解密需要同时修改代码 前端加密无非是写在JS里但是JS有风险被直接破解从而识别加密方法。
非对称加密存在两种风险
HTTPS是应用层协议下层采用TLS/SSL协议保证信息安全但是在应用层之上——客户端和服务端密文同样是可以被截获的。HTTPS报文在传输过程中如果客户端被恶意引导安装“中间人的Web信任证书”那么HTTPS中的“中间人攻击”一样会将明文密码泄露。 结论是无论HTTP还是HTTPS密码必须密文传输 想想HTTPS也不能一定保障用户密码信息那么就应该考虑在应用层之上再继续对密码进行保护也就是编写代码来进行控制而不依赖特定协议。
3.使用摘要算法进行加密
比较容易想到的就是利用不可逆加密散列函数MD5(string)用户在注册输入密码的时候就存储MD5(password)值并且在WEB端先进行MD5(password)然后将密码传输至后台与数据库中的密文进行比较PSMD5函数在指定位数的情况下对相同字符串运算值相同。
优点比较明显
保证数据库内用户的密码信息安全在传输过程中只能截取到用户的密文该密文被MD5加密后无论如何也不能破解简单高效执行以及编码难度都不大各种语言都提供MD5支持开发快
4.使用非对称加密RSA加密
使用RSA密钥对前端保留公钥文件服务器后端保留私钥文件每次登录时前端使用公钥对密码进行加密后端使用私钥解密。 不管在什么协议之下可以看到实际发送的HTTP/HTTPS报文在MD5处理后是这样的: 这样就安全了吗
不是的。因为攻击者并不一定要获取到你的密码明文如果直接截获你的密码密文然后发送给服务器不是一样可以登录吗因为数据库里的不也是MD5(password)的一样的密文吗HTTP请求被伪造一样可以登录成功。
5.加上Token令牌 / 验证码
在用户登录之前服务器缓存生成随机的验证字段设置有效时间并发送给客户端。当客户端用户输入完账号信息点击登录后把这个字段一并传给服务器用于校验。校验完成后服务端删除缓存中的验证字段。
每次从服务器中获取认证的token确实能保证HTTP请求是由前端传回来的了因为token在每次登陆后都会删除并被重置会导致黑客尝试重放账号密码数据信息来登陆的时候导致无法成功登陆。
总而言之就是我拿到了账号以及密码的密文也登陆不了因为如果请求不包含后台认证的令牌token是个非法请求。 总结 低配版用户安全只对密码进行简单的MD5加密后传给后台。攻击者压根不需要破解出密码的明文只需要用它截取到的用户名和MD5加密后的密码作为参数然后直接调你网站的登录接口就好了因为通常登录接口都是完全暴露的即任何人都可以调用校验通过后攻击者拿到授权令牌接下来就可以为所欲为了。 中配版用户安全非对称加密。使用RSA密钥对前端保留公钥文件服务器后端保留私钥文件每次登录时前端使用公钥对密码进行加密后端使用私钥解密乍一看这个应该挺安全了毕竟使用公钥加密后每次加密后得到的字符串都是不一样的但是只是不一样并不是不能用如果攻击者拿着这个用户名和公钥加密后的密码直接调用你的登录接口一样能登录成功并获得授权令牌。高配版用户安全Token令牌。用户每次登录时由服务端生成一个随机密钥对将公钥返回给前端私钥保存到服务器并设置该密钥对的有效期为30分钟有效时间大家随意用户登录的时候要求前端对用户的明文密码进行公钥加密后传给后端然后后端用私钥对密码进行解密然后与数据库保存的密码进行匹配登录成功之后服务器立即清除这个密钥对。这样即使攻击者拦截到了加密后的密码并用这个加密后的密码再次伪造登录也无法成功。 6.防止数据篡改、数据伪造
当请求路由到黑客这边的时候截获数据包然后也不需要登录反正账号密码都是对的token也是对的那么把数据包的字段改改搞破坏就可以了。
如何解决可以看这篇
HTTPS 的加密过程 详解-CSDN博客 “数字指纹“是HTTPS能确保数据完整性和防篡改的根本原因。它有固定的长度而且不同的明文摘要成密文其结果总是不同的而同样的内容信息其摘要必定一致。
“数字签名”保证消息不会被冒充、不会被整个替换。
5.参考
原文链接https://blog.csdn.net/weixin_42023666/article/details/89706659
原文链接面试官设计一个安全的登录都要考虑哪些我一脸懵逼。。-CSDN博客