Lumpuhkan Pengesahan Sijil Keselamatan dalam Permintaan Python
Apabila membuat permintaan HTTPS, perpustakaan permintaan Python mengesahkan sijil SSL pelayan untuk memastikan sambungan selamat . Walau bagaimanapun, dalam beberapa kes, seperti semasa mengakses tapak web dengan sijil tamat tempoh, anda mungkin ingin melumpuhkan pengesahan ini.
Untuk melumpuhkan pengesahan sijil, gunakan argumen pengesahan dalam fungsi requests.post. Tetapkannya kepada Palsu seperti berikut:
<code class="python">import requests requests.post(url='https://foo.example', data={'bar':'baz'}, verify=False)</code>
Ini membolehkan permintaan dibuat tanpa mengesahkan sijil SSL. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa ini boleh menimbulkan risiko keselamatan, kerana ia membuka kemungkinan serangan man-in-the-middle. Gunakan pilihan ini dengan berhati-hati.
Menggunakan Pengurus Konteks untuk Pengesahan SSL
Jika anda perlu melumpuhkan pengesahan SSL untuk berbilang permintaan dalam konteks tertentu, anda boleh menggunakan pengurus konteks seperti berikut:
<code class="python">import warnings import contextlib import requests from urllib3.exceptions import InsecureRequestWarning old_merge_environment_settings = requests.Session.merge_environment_settings @contextlib.contextmanager def no_ssl_verification(): opened_adapters = set() def merge_environment_settings(self, url, proxies, stream, verify, cert): # ... requests.Session.merge_environment_settings = merge_environment_settings try: with warnings.catch_warnings(): warnings.simplefilter('ignore', InsecureRequestWarning) yield finally: requests.Session.merge_environment_settings = old_merge_environment_settings for adapter in opened_adapters: try: adapter.close() except: pass with no_ssl_verification(): # Make requests without SSL verification here</code>
Pengurus konteks ini menetapkan pengesahan sementara kepada Palsu untuk semua permintaan yang dibuat dalam blok, kemudian kembali kepada tingkah laku lalai apabila blok itu keluar. Ia juga menyekat amaran SSL yang sebaliknya akan dicetuskan.
Atas ialah kandungan terperinci Bagaimanakah saya boleh melumpuhkan pengesahan sijil SSL dalam permintaan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!