Ich besitze 2 Websites, example.com
和 domain.com
。两个 DNS 均托管在 Cloudflare 上。 Cloudflare 在其仪表板上提供免费的 SSL/TLS 加密。这两个网站都设置为强制 HTTPS 重写的完全加密模式。 example.com
托管在 WebHostingA 上,domain.com
gehostet auf HosterB.
Ich möchte domain.com
从example.com/test.php
verwenden, um Inhalte zu erhalten.
Code: domain.com/get-contents.php
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://example.com/test.php'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, TRUE); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, ['username' => 'Bob']); $response = curl_exec($ch); var_dump($response);
Code: example.com/test.php
if (isset($_POST['username']) && ctype_alpha($_POST['username'])) { echo($_POST['username'] . " You got my contents!"); } else { echo("Nope!"); }
Ich konnte den Inhalt von example.com/test.php
获取内容(Bob 你得到了我的内容!
)。然而,我担心的是我不必在 cURL 代码中提供任何类型的证书。如何检查从 domain.com
发送的内容是否已加密以及从 example.com
erfolgreich zurückgeben (Bob, du hast meinen Inhalt erhalten!
). Meine Sorge besteht jedoch darin, dass ich im cURL-Code keinerlei Zertifikat angeben muss. Wie überprüfe ich, ob von domain.com
gesendete Inhalte verschlüsselt sind und von example.com
empfangene Inhalte verschlüsselt sind? Mein Ziel ist es, Daten sicher zwischen diesen beiden Websites zu übertragen.
首先你使用了
https
方案,这意味着curl使用tls连接。https://example.com/test.php
和http://example.com/test.php
是不同的 url,curl 本身不会更改方案.第二 - 在某些情况下,服务器端可能会重定向到纯 http。为了确保没有重定向并且连接是加密的,您可以尝试使用
curl_getinfo()
函数并检查CURLINFO_EFFECTIVE_URL
和CURLINFO_SSL_VERIFYRESULT
字段像这样:$r
应为 0,$url
应以https://
开头。您还可以在任何此服务器上使用 tcpdump 来记录请求并尝试检查转储是否有任何纯数据。
您将看到连接的端口并将捕获的数据记录到 dump.pcap 文件中。如果端口之一是 443 - 您的流量是使用 tls 发送的。您也可以稍后在wireshark中分析dump.pcap文件或仅使用
strings
命令。