让我们假设您正在使用足以满足 PCI DSS 的标记化/加密技术。
不,我们正在研究一个抽象问题,即有人可以预测一个值。风险因素是,如果可以猜测该值或遵循已知模式,则可以随意删除。
GUID 的问题无关紧要,因为攻击向量仍然是蛮力攻击。虽然了解用于创建唯一 id 的模式或算法当然可以帮助减少更多受字典限制的攻击的可能性,但提前了解 id 并不是不加选择地删除记录所必需的。
您可以通过实施额外的控制来解决问题。首先,如果这是在数据库中,则您有足够的日志记录和事务。
在执行删除的过程中,应该有额外的控制。让我们从用户端开始:如果记录与用户相关联,则只有用户应该具有删除他/她自己的记录的能力。如果用户未通过身份验证或不拥有记录,则不允许删除过程继续进行。用户是否需要提供特殊授权?是否在数据库或会话中设置了另一个变量以允许删除(例如,他们需要在操作通过之前进行授权?)如果有足够的风险,您可以实现带外确认,例如发送一个短信或电子邮件确认是可以接受的。在这种情况下,如果用户故意删除他们自己的信用卡记录,因为他们可以稍后再次输入,这可能是低风险的。
如果您有强大的身份验证、授权和事务控制,它将限制不加选择地删除值的能力,即使它们是已知的。
作为额外的预防措施,您可能希望实施启发式和攻击检测算法。例如,限制每天从同一 IP 地址删除的次数。考虑到正常的删除模式等,如果在给定的一天内删除过多,则回滚事务。
从您的描述中听起来,正在执行一个简单的 POST 命令,我将确保仅在存在 TLS/SSL、用户已通过身份验证、请求中有 CSRF 令牌等情况下才会发生这种情况。我将确保记录所有删除并且可以回滚。由于删除不会导致曝光,您还可以依靠对用户的事后通知,“我们确认您已删除存档的信用卡。如果您没有这样做,请立即与我们联系”等。