我们使用log4net库在文件中写入日志。实际上我们有一个付款表格,我们接受三个字段
当用户提交这些值时,我们将这些输入(除了卡号,因为我们在存储到日志文件之前将其屏蔽)记录在文件中。但是因为用户可以在参考字段中输入任何字符串或整数,所以用户可以在此字段中输入卡号,然后将其写入日志文件。那么我们如何保护这个领域,以便用户无法在此字段中添加卡号?
当用户提交表单时,您可以验证输入。要检查信用卡信息的参考字段,您可以使用线程Regex credit card number tests中描述的正则表达式。
如果它与输入匹配,您可以拒绝提交并向用户发出警告(“参考可能不包含信用卡号”等),或者只是跳过此字段的记录。或者您可以以匿名方式记录它,例如用星号(*)替换与正则表达式匹配的输入部分,并在日志消息中添加简短描述以替换信用卡号。
我这里没有看到实际问题。卡号仅在上下文中有用。 “参考”可能看起来像卡号,但实际上不是信用卡。您只有义务保护存储为信用卡号码的信用卡号码,或者以可以推测它们是信用卡号码的方式存储。用户可能将卡号放入“参考”字段的相对稀有性不允许任何查看日志的人猜测它肯定是卡号。
尽管如此,我还是说如果你想抓住这些,最好的选择是Luhn检查领域。如果你实际上在一个不是信用卡的字段中获得Luhn检查的通行证,那么你可以删除它或对其进行模糊处理。
如果在参考中输入了卡号,那么它将是一个复制粘贴错误(最终用户可以这样做)。您可以简单地检查如果引用包含cardnumber字符串然后抛出异常。
如果参考号和卡号都有不同的有效卡号。然后它必须是您的QA人员输入的数据。哈哈哈