Bagaimanakah saya boleh melumpuhkan pengesahan sijil SSL dalam permintaan Python?

DDD
Lepaskan: 2024-10-27 06:04:29
asal
400 orang telah melayarinya

How can I disable SSL certificate verification in Python requests?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
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!