标签: credit-card

41
推荐指数
1
解决办法
5349
查看次数

在会话中存储信用卡号码 - 围绕它的方式?

我非常了解PCI合规性,因此在结账过程中我们不需要在公司数据库中存储CC号码(特别是CVV号码).

但是,我希望在处理敏感的消费者信息时尽可能安全,并且好奇如何在不使用SESSION变量的情况下绕过页面传递CC号码.

我的网站以这种方式构建:

  1. 步骤1)从客户收集信用卡信息 - 当客户点击提交时,信息首先通过JS验证运行,然后通过PHP验证运行,如果所有通过他转到步骤2.
  2. 步骤2)信息显示在客户的评论页面上,以确保显示他们即将进行的交易的详细信息.此页面仅显示CC的前6个和后4个,但卡类型和exp日期完全是shwon.如果他点击继续,
  3. 步骤3)将信息发送到另一个运行最后一次验证的php页面,通过安全支付网关发送信息,并返回带有详细信息的字符串.
  4. 步骤4)如果一切顺利,消费者信息(个人信息,而不是CC)存储在数据库中并重定向到完成页面.如果有什么不好的话,他会被告知并重新访问CC处理页面再试一次(最多3次).

有什么建议?

编辑

我在这个问题上得到了很多非常好的回应 - 大多数人似乎同意以下几点:

  1. 运行验证后获取POST变量
  2. 加密ccnum和cvv(不确定你是否可以将cvv存储在DB中)
  3. 存储在临时DB中
  4. 在"审核"页面之后立即访问数据库是可以的
  5. 从DB解密细节
  6. 向处理器发送信息
  7. 收到回应
  8. 终止DB

我认为这总体上是有道理的.有没有人有好的加密/解密方法以及创建临时数据库信息的最佳方法,这些信息会在以后的呼叫中自动删除?

我在PHP和MySQL DB编程

编辑#2

我遇到了Packet General,这似乎是一个理想的解决方案,但真的不想支付另一个软件许可证来实现这个目标. http://www.packetgeneral.com/pcigeneralformysql.html

编辑#3 - 示例代码

我现在已经发布了一些示例代码,我将这些代码放在一起,试图理解本文中提到的加密/解密/密钥和存储.希望已经有用的贡献者可以验证,其他人可以使用类似的功能.为了长度,我不会讨论用于实际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加密和存储数据

<?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)

php mysql session credit-card

38
推荐指数
4
解决办法
1万
查看次数

PHP中的信用卡支付网关?

我需要处理信用卡并与后端支付服务集成以对其进行信贷.互联网上的大多数解决方案都需要中介,例如.2CO,GCO,Auth.net.

您是否有使用PHP实施信用卡支付网关的经验?感谢任何帮助.

谢谢你的时间.

php api transactions credit-card payment-gateway

37
推荐指数
3
解决办法
9万
查看次数

在MySQL数据库中保存信用卡信息?

我想允许我的客户用户输入他们的信用卡信息,以便我可以每月向他们收费.

我想知道如何保存这些信息?

它应该保存在MySQL数据库("用户"表)中,还是这种信息过于敏感,需要存储在其他地方?

我没有这方面的经验,如果有人可以建议我如何实现这一点,我会很高兴.

谢谢.

mysql database credit-card

37
推荐指数
3
解决办法
4万
查看次数

在Android上通过NFC阅读Visa payWave信用卡详细信息

是否可以通过三星Galaxy Nexus上的NFC读取Visa payWave卡的信用卡详细信息(姓名,号码,到期日)?其他支持NFC的信用卡怎么样?

如果不可能,有没有办法从卡中检索一个唯一的ID?

此外,任何参考或示例代码将是一个很大的帮助.

android credit-card nfc

30
推荐指数
1
解决办法
9万
查看次数

存储信用卡号码 - PCI?

在数据库中存储信用卡号码时要遵循哪些PCI规则?

1)这是允许的吗?2)如果是这样,我们必须遵循哪些规则?

我正在看这个网站https://www.pcisecuritystandards.org/security_standards/index.php 我应该在这里阅读哪个文件?

database credit-card pci-dss pci-compliance

29
推荐指数
2
解决办法
2万
查看次数

如何使用Log4J屏蔽日志文件中的信用卡号?

我们的网络应用程序需要符合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)

java log4j credit-card mask

28
推荐指数
2
解决办法
2万
查看次数

iOS - 整合信用卡付款

我知道我们可以将应用内购买与storekit集成.但我想用信用卡整合付款.苹果是否允许整合这些图书馆?是否有任何此类库可供用户使用其信用卡在我的应用程序中支付产品?

credit-card ios in-app

28
推荐指数
2
解决办法
4万
查看次数

存储信用卡信息

我可以存储用户信用卡的到期日期和最后4位数吗?原因是我们可以通知用户他们的卡即将过期,并且他们应该将他们的帐户更改为新卡.存储最后四位数字将允许用户识别他们使用我们的系统存储的卡.

security credit-card

27
推荐指数
1
解决办法
4998
查看次数

Android:如何阅读磁条(信用卡等)数据

实际的应用程序实际上是一个Web应用程序,但因为我的第一印象是,没有办法用正常的(机器人)的Web浏览器要做到这一点,现在,我想这可能是可能用的WebView.

有没有适用于Android的API/SDK的读卡器附件?

android credit-card

25
推荐指数
1
解决办法
4万
查看次数