cURL dengan pengesahan SSL berfungsi, tetapi bagaimana untuk mengesahkan ia disulitkan?
P粉155832941
P粉155832941 2024-01-16 12:51:08
0
1
335

Saya memiliki 2 tapak web, example.comdomain.com。两个 DNS 均托管在 Cloudflare 上。 Cloudflare 在其仪表板上提供免费的 SSL/TLS 加密。这两个网站都设置为强制 HTTPS 重写的完全加密模式。 example.com 托管在 WebHostingA 上,domain.com dihoskan di HosterB.

Saya ingin menggunakan domain.comexample.com/test.php untuk mendapatkan kandungan.

Kod: 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);

Kod: example.com/test.php

if (isset($_POST['username']) && ctype_alpha($_POST['username'])) {

    echo($_POST['username'] . " You got my contents!");

} else {
    echo("Nope!");
}

Saya berjaya memulangkan kandungan daripada example.com/test.php 获取内容(Bob 你得到了我的内容!)。然而,我担心的是我不必在 cURL 代码中提供任何类型的证书。如何检查从 domain.com 发送的内容是否已加密以及从 example.com (Bob anda mendapat kandungan saya!). Walau bagaimanapun, kebimbangan saya ialah saya tidak perlu memberikan sebarang jenis sijil dalam kod cURL. Bagaimanakah saya boleh menyemak sama ada kandungan yang dihantar daripada domain.com disulitkan dan kandungan yang diterima daripada example.com disulitkan? Matlamat saya adalah untuk memindahkan data dengan selamat antara kedua-dua tapak web ini.

P粉155832941
P粉155832941

membalas semua(1)
P粉505450505

Pertama sekali, anda menggunakan https方案,这意味着curl使用tls连接。 https://example.com/test.phphttp://example.com/test.php url yang berbeza, curl itu sendiri tidak akan mengubah skema.

Kedua - Dalam sesetengah kes, bahagian pelayan boleh mengubah hala ke http biasa. Untuk memastikan tiada ubah hala dan sambungan disulitkan, anda boleh cuba menggunakan medan curl_getinfo() 函数并检查 CURLINFO_EFFECTIVE_URLCURLINFO_SSL_VERIFYRESULT seperti ini:

$r = curl_getinfo($ch, CURLINFO_SSL_VERIFYRESULT);
$url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);

$r 应为 0,$url 应以 https:// Permulaan.

Anda juga boleh menggunakan tcpdump pada mana-mana pelayan ini untuk log permintaan dan cuba menyemak dump untuk sebarang data tulen.

[server1]# tcpdump -l -n -s 0 -w dump.pcap host server2.ip.addres

Anda akan melihat port yang disambungkan dan log data yang ditangkap ke dalam fail dump.pcap. Jika salah satu port ialah 443 - trafik anda dihantar menggunakan tls. Anda juga boleh menganalisis fail dump.pcap kemudian dalam wireshark atau hanya gunakan arahan strings.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!