我非常了解PCI合规性,因此在结账过程中我们不需要在公司数据库中存储CC号码(特别是CVV号码).
但是,我希望在处理敏感的消费者信息时尽可能安全,并且好奇如何在不使用SESSION变量的情况下绕过页面传递CC号码.
我的网站以这种方式构建:
有什么建议?
我在这个问题上得到了很多非常好的回应 - 大多数人似乎同意以下几点:
我认为这总体上是有道理的.有没有人有好的加密/解密方法以及创建临时数据库信息的最佳方法,这些信息会在以后的呼叫中自动删除?
我在PHP和MySQL DB编程
我遇到了Packet General,这似乎是一个理想的解决方案,但真的不想支付另一个软件许可证来实现这个目标.
http://www.packetgeneral.com/pcigeneralformysql.html
我现在已经发布了一些示例代码,我将这些代码放在一起,试图理解本文中提到的加密/解密/密钥和存储.希望已经有用的贡献者可以验证,其他人可以使用类似的功能.为了长度,我不会讨论用于实际CC num本身的验证方法.
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="POST">
<input type="text" name="CC" />
<input type="text" name="CVV" />
<input type="text" name="CardType" />
<input type="text" name="NameOnCard" />
<input type="submit" name="submit" value="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
<?php
$ivs = mcrypt_get_iv_size(MCRYPT_DES,MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($ivs,MCRYPT_RAND);
$key = "1234"; //not sure what best way to generate …Run Code Online (Sandbox Code Playgroud) 我想允许我的客户用户输入他们的信用卡信息,以便我可以每月向他们收费.
我想知道如何保存这些信息?
它应该保存在MySQL数据库("用户"表)中,还是这种信息过于敏感,需要存储在其他地方?
我没有这方面的经验,如果有人可以建议我如何实现这一点,我会很高兴.
谢谢.
是否可以通过三星Galaxy Nexus上的NFC读取Visa payWave卡的信用卡详细信息(姓名,号码,到期日)?其他支持NFC的信用卡怎么样?
如果不可能,有没有办法从卡中检索一个唯一的ID?
此外,任何参考或示例代码将是一个很大的帮助.
在数据库中存储信用卡号码时要遵循哪些PCI规则?
1)这是允许的吗?2)如果是这样,我们必须遵循哪些规则?
我正在看这个网站https://www.pcisecuritystandards.org/security_standards/index.php 我应该在这里阅读哪个文件?
我们的网络应用程序需要符合PCI标准,即不得存储任何信用卡号码.该应用程序是大型机系统的前端,它在内部处理CC号码 - 正如我们刚刚发现的那样 - 偶尔会在其响应屏幕上吐出一个完整的CC号码.默认情况下,这些响应的全部内容都以调试级别记录,并且从这些响应中解析的内容也可以记录在许多不同的位置.所以我无法追捕这些数据泄漏的来源.我必须确保在我们的日志文件中屏蔽了CC编号.
正则表达式部分不是问题,我将重用我们已在其他几个地方使用的正则表达式.但是我找不到有关如何使用Log4J更改日志消息的一部分的任何好的来源.过滤器似乎更受限制,只能决定是否记录特定事件,但不能改变消息的内容.我还发现了Log4J 的ESAPI安全包装API,它初看起来有望实现我的目标.但是,显然我需要用ESAPI记录器类替换代码中的所有记录器 - 这是一个痛苦的屁股.我更喜欢更透明的解决方案.
知道如何屏蔽Log4J输出的信用卡号码吗?
更新:根据@ pgras的最初想法,这是一个有效的解决方案:
public class CardNumberFilteringLayout extends PatternLayout {
private static final String MASK = "$1++++++++++++";
private static final Pattern PATTERN = Pattern.compile("([0-9]{4})([0-9]{9,15})");
@Override
public String format(LoggingEvent event) {
if (event.getMessage() instanceof String) {
String message = event.getRenderedMessage();
Matcher matcher = PATTERN.matcher(message);
if (matcher.find()) {
String maskedMessage = matcher.replaceAll(MASK);
@SuppressWarnings({ "ThrowableResultOfMethodCallIgnored" })
Throwable throwable = event.getThrowableInformation() != null ?
event.getThrowableInformation().getThrowable() : null;
LoggingEvent maskedEvent = new LoggingEvent(event.fqnOfCategoryClass,
Logger.getLogger(event.getLoggerName()), …Run Code Online (Sandbox Code Playgroud) 我知道我们可以将应用内购买与storekit集成.但我想用信用卡整合付款.苹果是否允许整合这些图书馆?是否有任何此类库可供用户使用其信用卡在我的应用程序中支付产品?
我可以存储用户信用卡的到期日期和最后4位数吗?原因是我们可以通知用户他们的卡即将过期,并且他们应该将他们的帐户更改为新卡.存储最后四位数字将允许用户识别他们使用我们的系统存储的卡.
在实际的应用程序实际上是一个Web应用程序,但因为我的第一印象是,没有办法用正常的(机器人)的Web浏览器要做到这一点,现在,我想这可能是可能用的WebView.
有没有适用于Android的API/SDK的读卡器附件?