0

我正在集成支付网关;这是我第一次将支付网关功能集成到我的系统中,我使用 Authorised.Net 作为支付网关。

由于我已成功集成它,但我看到用户必须输入以下值才能购买他的商品,并返回交易 ID。

    //post_values.Add("x_card_num", "4111111111111111");
    //post_values.Add("x_card_num", CreditCard);
    //post_values.Add("x_exp_date", "0115");
    ////post_values.Add("x_amount", "19.99");
    ////post_values.Add("x_amount", );
    ////post_values.Add("x_description", "Sample Transaction");
    //post_values.Add("x_amount", txtAmout.Text);

    //post_values.Add("x_description", txtDesc.Text);

    ////post_values.Add("x_first_name", "John");
    ////post_values.Add("x_last_name", "Doe");
    ////post_values.Add("x_address", "1234 Street");
    ////post_values.Add("x_state", "WA");
    ////post_values.Add("x_zip", "98004");
    //post_values.Add("x_first_name", txtFName.Text);
    //post_values.Add("x_last_name", txtFName.Text);
    //post_values.Add("x_address", txtAddr.Text);
    //post_values.Add("x_state", txtState.Text);
    //post_values.Add("x_zip", txtZip.Text);

这些值只是固定他的交易和购买项目,所以我的困惑是,如果网站所有者将所有这些信息放入他的数据库并使用他的详细信息进行更多交易,那会怎样?它是安全可靠的,还是发生了我无法弄清楚的其他事情?

4

3 回答 3

2

以下是一些需要遵循的基本准则:

  1. 将所有信息保留在您的数据库中,除了信用卡号。除非您认为您的加密系统是安全的,否则切勿保留信用号码。
  2. 存储 Authorize.net 成功或失败的交易
  3. 您需要创建一个事务表,您将为每个事务创建一个新行,无论是同一用户或事务结果。
  4. 加密交易的某些部分:地址是加密的好东西。如果您被黑客入侵,这将避免身份盗用。
  5. 确保所有用户密码都经过哈希处理
  6. 存储加密的网站数据库连接
  7. 仅使用存储过程与数据库通信。如果存储过程构建正确,这应该可以避免 SQL 注入。
于 2012-05-22T11:38:00.967 回答
1

就是这样,网站所有者可以将所有信息放入他的数据库中,如果网站上存在交易模式,这就是为什么我和我认为大多数其他人要么从受信任的站点或重定向到某些受信任网关的站点进行交易像 paypal 或 authorize.net 进行金融交易。

于 2012-05-22T11:31:34.167 回答
1

感谢您的澄清。我目前正在开发一个以同样方式使用 PayPal 的项目。我们将授权代码和交易 ID 存储在我们的数据库中。

在我看来,用户将通过存储他们的信息来节省 30 秒左右的时间不值得与存储他们的信息相关的风险。如果您正在进行重复交易,供应商将为您安全地存储信息(至少 PayPal 会这样做),因此没有真正的理由将信用卡信息存储在您的系统中。

[编辑] 正如 Imran 指出的那样,存储该号码的最后 4 位数字可以很好地显示在报告上。

除了联系您的信用卡公司并报告欺诈性费用之外,如果数据库所有者正在存储这些信息,您无法阻止他们滥用这些信息。支付网关不知道是谁在输入支付细节,除了确保交易来自他们的授权客户之一(即,被授权使用支付网关的客户)。

于 2012-05-22T11:43:58.020 回答