2012-07-31 5 views
2

저는 다양한 신용 카드 데이터 및 판매자 계정 데이터를 가져 와서 cURL을 가져 와서 반환 XML을 구문 분석하는 신용 ​​카드 프로세서 스크립트 (프로세서에서 제공)로 작업하고 있습니다. 거래 상태.PHP cURL - 신용 카드 거래 처리시 보안

코드 :

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 거짓 메이크업으로 설정되어 있는가보다 쉽게 ​​서버가 스푸핑 될 및 거래 데이터를 가로 챌 수까지?

2) cURL URL 및 관련 POST 값이 서버 로그에 저장되거나 일반 텍스트로 전송됩니까?

3)이 트랜잭션을 수행하기위한 안전한 방법이나 옵션이 있습니까?

+0

부수적 인 메모. 'https : // ideposit.vbprograms.net'은 유효한 인증서를 가지고 있지 않으며, 매우 저조한 설계와 오래된 웹 사이트이며, 그들의 사업에 관한 어떠한 식별 정보도 제공하지 않습니다. 나는 그들의 서비스를 사용하기 전에 두 번 생각할 것입니다. – Adi

+0

고객과의 협의가 불투명하다는 사실에 동의하는 동안 고객은 경고에도 불구하고이 공급 업체를 주장했습니다. "올바른"사이트는 ideposit.net이어야하지만 모든 API 호출을 vbprograms.net 하위 도메인을 통해 전달할 것을 요청합니다. 매우 이상합니다. –

답변

2

프로덕션 환경에서는 CURLOPT_SSL_VERIFYPEER = true라는 기본값을 사용하려고합니다. 이것은 SSL 인증서가 유효한지 확인합니다. 아마도 프로세서가 자체 서명 된 인증서 나 만료 된 인증서 또는 유사한 인증서를 가지고있을 수있는 샌드 박스를 제공하는 테스트 환경이나 개발 환경의 경우이 값을 false로 설정하는 것이 좋습니다.

SSL을 사용 중이므로 데이터가 일반 텍스트로 보내지지 않습니다. 어떤 종류의 오류 로깅이 있는지 알지 못하면 서버 로그에 저장할지 여부를 말하기 어렵습니다.

cURL은 SSL을 항상 사용하고 민감한 데이터를 로깅하지 않는다고 가정하면서하는 일을하는 데는 문제가 없습니다.