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

问题描述 投票:0回答:3

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

  1. 持卡人姓名(最长50)
  2. 卡号(有效的信用卡号码,即主/签证等)和
  3. 引用(这只是一个文本文件,max length user可以输入任何字符串或整数值)。

当用户提交这些值时,我们将这些输入(除了卡号,因为我们在存储到日志文件之前将其屏蔽)记录在文件中。但是因为用户可以在参考字段中输入任何字符串或整数,所以用户可以在此字段中输入卡号,然后将其写入日志文件。那么我们如何保护这个领域,以便用户无法在此字段中添加卡号? enter image description here

c# asp.net-core
3个回答
1
投票

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

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


1
投票

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

尽管如此,我还是说如果你想抓住这些,最好的选择是Luhn检查领域。如果你实际上在一个不是信用卡的字段中获得Luhn检查的通行证,那么你可以删除它或对其进行模糊处理。


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.