PHP cURL - 处理信用卡交易时的安全性

标签 php security curl

我正在使用信用卡处理器脚本(由处理器提供),该脚本接收各种信用卡数据和商家帐户数据,获取 cURL,并解析返回 XML 以获取交易状态。

代码:

define("CURL_PROCESSING_URL", "https://ideposit.vbprograms.net/servlet/pg");

$params =   "Merchant_User_Name=" . "vitale" .
            "&Merchant_Password=" . "test" .
            "&Tracking_Number=" . "00001" .
            "&Credit_Card_Number=" . "4012888888881" .
            "&Credit_Card_Exp_Date=" . "1205" .
            "&Charge_Amount=" . "12.00" .
            "&AVS_Street=" . "8320" .
            "&AVS_Zip_Code=" . "85284" .
            "&CV_Security_Code=" . "999" .
            "&Credit_Card_Type=" . "MC_CARD_VISA" .
            "&CardHolder_Name=" . "test Card Holder";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, CURL_PROCESSING_URL);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$returned = curl_exec($ch);
curl_close($ch);

$p = xml_parser_create();
xml_parse_into_struct($p, $returned, $vals, $index);
xml_parser_free($p);

问题:

1)SSL_VERIFYPEER 设置为 false 是否会导致服务器更容易被欺骗,交易数据更容易被拦截?

2) cURL URL 和关联的 POST 值是否存储在服务器日志中或以纯文本形式传输?

3)是否有更安全的方式或选项来进行此交易?

最佳答案

我认为在生产环境中,您需要使用默认值 CURLOPT_SSL_VERIFYPEER = true。这将验证 SSL 证书是否有效。对于测试或开发环境,处理器可能为您提供一个沙箱来使用,该沙箱可能具有自签名证书或已过期或类似的证书,您可能可以将其设置为 false。

您正在使用 SSL,因此数据不会以纯文本形式发送。在不知道您有哪种错误日志记录的情况下,很难说它是否会存储在服务器日志中。

假设您始终使用 SSL 并且不记录敏感数据,cURL 完全可以完成您想要做的事情。

关于PHP cURL - 处理信用卡交易时的安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11748613/

相关文章:

php - 只有我的 If 语句被激活,而不是我的其他语句,即使我没有为 id 提供输入

php - php 不接受所有图像扩展名?

php - PDO : Select using a prepared statement returns column name

php - 谷歌 API OAuth 2.0 CURL 返回 "Required parameter is missing: grant_type"

php - CURL 问题(多)

php - 亚马逊云搜索的替代品

java - HTTPS POST 请求(java)到网站(php),如何处理来自它的数据?

security - 验证码替代品 : What can spambots do?

security - Nexus Pro 如何自动验证下载 Artifact 的真实性?

php - 如何通过 curl/wget/file_get_contents 使用不同的 IP?