我正在使用信用卡处理器脚本 - 由处理器提供 - 它接收各种信用卡数据和商家帐户数据,获取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)是否有更安全的方式或一组选项来进行此交易?
答案 0 :(得分:2)
我认为在生产环境中,您可能希望使用CURLOPT_SSL_VERIFYPEER = true的默认值。这将验证SSL证书是否有效。对于测试或开发环境,处理器可能会为您提供一个可能具有自签名证书或过期或类似证书的沙箱,您可能会将其视为错误。
您正在使用SSL,因此数据不会以纯文本格式发送。如果不知道您所使用的错误记录类型,很难说它是否会存储在服务器日志中。
假设你总是使用SSL并且你没有记录敏感数据,那么cURL完全可以做你想做的事。