复制代码
为懒人提供无限可能,生命不息,code不止
人类感性的情绪,让我们知难行难
首页
前端
后台
数据库
运维
资源下载
实用工具
登录
注册
其它
【原创】业务安全的一些个人想法
作者: whooyun
发表于:
2023-06-28 11:42
安全认知:任何加密算法,安全措施都无法保证百分百的安全,只能提升被非法破解,入侵的难度,成本,所以我们能做到的就是相对安全。
用户注册场景
前端安全处理以HTTPS协议为基础的方案:
1、使用RSA加密方法,私钥通过加密方式存储在客户端,客户端源码需进行压缩和混淆
2、用户填写账号,密码等安全信息时需要使用公钥进行加密,并进行签名,再提交到后台接口
后端安全处理以HTTPS协议为基础的方案:
1、接口获取到前端提交的信息后,使用私钥解密安全信息,并验证签名
2、使用BCrypt算法或者多次迭代MD5+SALT(64位及以上)算法,然后将生成后的秘闻保存至数据库
提交订单及发起支付场景(安全核心验证签名)
:
前端安全处理以HTTPS协议为基础的方案:
1、使用RSA加密方法,私钥通过加密方式存储在客户端,客户端源码需进行压缩和混淆
2、用户填写账号,密码等安全信息时需要使用公钥进行加密,并进行签名,再提交到后台接口
后端安全处理以HTTPS协议为基础的方案:
1、接口获取到前端提交的信息后,使用私钥解密安全信息,并验证签名
###############################################################
注意事项:兼顾性能,也可以使用MD5进行签名验证
会话安全场景:
前后端使用jwt token 或者OAuth token进行用户鉴权验证,token需要RSA加密后才能允许存储在前端
操作步骤:
1、用户登录时生成token,并返回给前端
2、前端以后发起请求,必须带token
高档版本:token存放在客户端,服务器端,token有效期需要客户端,服务端同步,并能进行锁定,黑名单处理
1、用户登录时生成token,保存到redis,并返回给前端
2、前端以后发起请求,必须带token
3、后端每次接收到前端的接口请求,必须验证token的有效性,及是否在redis中存在,如果token有效期低于1分钟则自动更新并返回新的token,并将新token存储到redis中
注意事项:
使用安全的传输层(如HTTPS)来加密Cookie的传输。
设置Cookie的过期时间,确保Cookie在一定时间后失效。
使用HttpOnly属性来限制Cookie的访问范围,防止恶意脚本获取Cookie。
使用Secure属性来限制Cookie只能通过安全的HTTPS连接传输。
对Cookie中的敏感信息进行加密或散列处理。
对用户输入的数据进行适当的转义和过滤,防止XSS攻击。
定期检查和更新Cookie,确保其安全性。
--------------------------------------------------------------
后续有更好的想法再补充