防范开发漏洞相关手段

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/chen__an/article/details/94032021

防范密码找回漏洞的相关手段

在密码找回功能设计时对用户凭证的验证次数和频率进行限制,防止攻击者对用户凭证的暴力枚举攻击;

对密码找回的各个环节进行梳理,记录分析所有交互数据,避免密码找回凭证等敏感信息直接返回客户端;

对服务端密码重置Token的生成算法进行审计,避免使用容易被攻击者破解的简单算法;

密码重置凭证应与账户严格绑定,并设置有效时间,避免攻击者通过修改账户ID的方式重置他人密码;

对客户端传入的数据要进行严格的校验,手机号,邮箱地址等重要信息应和后台数据库中已存储的信息进行核对,不应从客户端传入的参数中直接取用,避免攻击者通过篡改传入数据的方式重置他人密码;

对用户注册,手机邮箱绑定等业务逻辑进行审计,避免攻击者通过用户重复注册和越权绑定等漏洞间接重置他人密码。

防范越权访问漏洞的相关手段

平行越权:攻击者请求操作(增删改查)某条数据时,Web应用程序没有判断该数据的所属人,或者在判断数据所属人时直接从用户提交的表单参数中获取(如用户ID),导致攻击者可以自行修改参数,操作不属于自己的数据。

纵向越权:服务器为鉴定客户端浏览器会话及身份信息,会将用户身份信息存储在cookie中,并发送到客户端存储。攻击者通过尝试修改Cookie中的身份标识为管理员,欺骗服务器分配管理员权限,,达到垂直越权目的。

对于开发者而言,一定要有安全意识,时刻警惕。

永远不要相信来自客户端的输入,对于可控参数进行严格的检查与过滤;

执行关键操作前必须验证用户身份,多阶段功能的每一步都要验证用户身份;

对于直接对象引用,加密资源ID,以防攻击者对ID进行枚举;

在前端实现的验证并不可靠,前端可以验证用户的输入是否合规,要在服务端对请求的数据和当前用户身份做校验。检查提交CRUD请求的操作者与目标对象的权限所有者是否一致,如果不一致则阻断;

在调用功能之前,验证当前用户身份是否有权限调用相关功能(推荐使用过滤器,进行统一权限验证);

把属主,权限,对象,操作的场景抽象成一个统一的框架,在框架内统一实现权限的管理和检查。

防范在线支付漏洞的相关手段

      针对订单金额篡改的预防措施:将订单中的商品价格封装为码表形式,即每个商品拥有一个ID,每个ID对应一个相应的价格。用户访问前台选择商品并提交,服务器端验证商品ID,然后计算商品总额并生成订单。

      针对订单数量篡改的预防措施:在服务器端判断提交商品ID中数量参数值不低于0,如果低于0,则直接提示错误信息,让客户修正。   通过数据类型判断正确后,同时判断商城库存对应的商品的剩余量,如果剩余量低于商品的购买数量,则直接提示错误信息,让客户修正。

      针对订单请求重放测试的预防措施:无论支付成功还是失败,使用的订单编号必须唯一,并且永久记录订单编号,不许二次使用。

      针对其他参数(如运费)干扰测试的预防措施:在服务器端判断订单中运费参数值不低于0,如运费参数值低于0,则直接提示错误信息。

防范账号泄露的措施

  1. 核查数据库中的账号与密码存储方式,自行加密用户敏感数据,严格限制数据库的访问条件,禁止外部连接数据库。

  2. 采用HTTPS协议对账户认证过程实现加密封装,确保身份认证过程无法被窃取。

  3. 加强网络信息安全意识,网络管理人员对内部员工进行安全意识培训,禁止使用弱口令,禁止公开个人账号密码,定期修改密码。

  4. 使用数字证书认证,数字证书是通过运用对称和非对称密码体制等密码技术建立起一个严密的身份认证系统,从而保证信息除发送方和接收方外不被其他人窃取。

  5. 了解互联网账号泄露事件,存在账号泄露事件时第一时间通知客户修改个人账号和密码,避免撞库攻击。

猜你喜欢

转载自blog.csdn.net/chen__an/article/details/94032021