屏蔽日志文件中的信用卡号

时间:2018-03-06 06:36:39

标签: c# asp.net-core

我们正在使用log4net库在文件中写入日志。实际上我们有一个付款表格,我们接受三个字段

  1. 持卡人姓名(最长50人)
  2. 卡号(有效的信用卡号码,即主人/签证等)和
  3. 参考(这只是一个文本文件,最大长度用户可以输入任何字符串或整数值)。
  4. 当用户提交这些值时,我们会在文件中记录这些输入(卡号除外,因为我们在存储到日志文件之前将其屏蔽了)。但是因为用户可以在参考字段中输入任何字符串或整数,所以用户可以在此字段中输入卡号,然后将其写入日志文件。那么我们如何保护这个领域,以便用户无法在此字段中添加卡号? enter image description here

3 个答案:

答案 0 :(得分:1)

当用户提交表单时,您可以验证输入。要检查信用卡信息的参考字段,您可以使用线程Regex credit card number tests中描述的正则表达式。

如果它与输入匹配,您可以拒绝提交并向用户发出警告("参考可能不包含信用卡号"等等)或者只是跳过此字段的记录。或者您可以以匿名方式记录它,例如用星号(*)替换与正则表达式匹配的输入部分,并在日志消息中添加简短描述以替换信用卡号。

答案 1 :(得分:1)

我在这里看不到实际问题。卡号仅在上下文中有用。 A"参考"可能看起来像卡号一样,但实际上并不是信用卡。您只有义务保护存储为信用卡号码的信用卡号码,或者以可以推测它们是信用卡号码的方式存储。用户可能会将卡号放入"参考"字段不允许任何查看日志的人猜测它肯定是卡号。

尽管如此,我还是说你最好的选择,如果你想抓住这些就是Luhn检查领域。如果您真的在Luhn检查中获得传递,而不是信用卡,那么您可以删除它或对其进行模糊处理。

答案 2 :(得分:0)

如果在参考中输入了卡号,那么它将是一个复制粘贴错误(最终用户可以这样做)。您可以简单地检查一下,如果引用包含cardnumber字符串,则抛出异常。

如果参考号和卡号都有不同的有效卡号。然后它必须是您的QA人员输入的数据。哈哈哈