与my last question相关我有一个新的。
通过 https 发送加密数据的安全方法是什么。
使用 signAndEncrypt使用 openssl_pkcs7_encrypt 函数并通过表单元素发送返回数组...
$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
与公共(public)证书一起使用是否足够安全?
2.是否可以将 pkcs7
加密(或类似的加密)与 curl
一起使用?
3.在通过 curl/https 将数据发送到 paypal 之前,我假设无法加密 postfields 是否正确,因为当我这样做时,paypal 会给我失败响应?
请帮忙。
你好ninchen
最佳答案
当谈到加密和安全时,您的第一个答案应该是做任何标准的事情。这是有原因的标准,并且可以预期是相当安全的。如果发现漏洞,您将需要更新,但其他人也需要更新。尝试一个聪明的技巧来“更安全”通常意味着你最终会得到一些不那么安全的东西。
参见 this answer进行更深入的讨论。
关于php - 更安全的加密方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24003979/