与my last question相关,我有一个新的。
通过https发送加密数据的更安全的方法是什么。
在openssl_pkcs7_encrypt中使用signAndEncrypt函数并通过表单元素发送返回数组...
$encryptedData = "-----BEGIN PKCS7-----" . str_replace("\n", "", <br/> $encryptedDataReturn['encrypted_data']) ."-----END PKCS7-----";
$encryptedRequest=<<<PPHTML
<html>
<header>
</header>
<body onload="document.getElementById('paypal_form').submit();">
<br/><br/><br/><br/>
<center>
<h2>Please wait, your order is being processed and you
will be redirected to the paypal website.
</h2>
</center>
<form id="paypal_form" method="POST" action="{$this->gatewayUrl}">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="encrypted" value="$encryptedData">
</form>
</body>
</html>
PPHTML;
或像这样使用curl
2
$curlOptions = array (
CURLOPT_URL => Config::MERCHANT_SANDBOX_SIGNATURE_ENDPOINT,
CURLOPT_VERBOSE => 1,
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_CAINFO => $this->publicCertificate,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_POST => 1,
CURLOPT_HEADER => true,
CURLOPT_POSTFIELDS => http_build_query($data)
);
$ch = curl_init();
curl_setopt_array($ch,$curlOptions);
//Sending our request - $response will hold the API response
$response = curl_exec($ch);
我正试图找到最安全的方式将数据发送到paypal api。
首先,我混合了两个函数,并将加密的nvp添加到CURLOPT_POSTFIELDS
。但这给了我一些来自paypal的错误。所以我做了双重加密。当我离开postfields未加密时,paypal api给了我success
。
我的问题:1。是否足够安全,将curl
与公共证书一起使用?
2。是否可以对pkcs7
使用curl
加密(或类似加密)?
3。假设在通过curl / https向paypal发送数据之前,不能加密postfields,我是否正确,因为当我这样做时,paypal会给我失败的回复?
请帮忙。
问候ninchen
答案 0 :(得分:1)
当谈到加密&amp;安全性,你的第一个答案应该是做任何标准的事情。它的标准是有原因的,可以说是合理安全的。如果发现漏洞,您需要更新,但其他人也会如此。尝试一个聪明的伎俩,更安全&#34;通常意味着你最终得到的东西不那么重要。
有关详细讨论,请参阅this answer。