我目前正在开发一个系统,该系统具有一个功能,客户可以通过提供 PIN“号码”来查看他们的购买/续订/等详细信息。
由于我们所针对的客户类型,使用 PIN 代替登录信息。PIN 印在发送给他们的文件上。
他们提供 PIN 时显示的视图不会显示信用卡等高度敏感的信息,但会显示产品名称、类型、价格、条形码、维修等不太敏感的信息。
有问题的问题是PIN。我选择使用随机的 5 个字符 PIN(0-9,az AZ) - 区分大小写。我将删除一些同形文字('I'、'1'、'l'、'0'、'O'、'rn'、'vv'),因此实际的组合数量实际上更少。
我对此有几个问题:
- 这种做法是否可以接受?
- 我是否应该编写一个锁定机制来“禁止”来自具有大量失败尝试的 IP 的流量?*
- 我应该编写一个错误检查系统(类似于 Luhn 的信用卡号码算法)吗?
- *我应该使用验证码系统吗?