<p>рдЕрдиреБрд░реЛрдз [рд╕реБрд░рдХреНрд╖рд╛] / PyOpenSSL рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рднрдВрдЧреБрд░ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ</p>

рдХреЛ рдирд┐рд░реНрдорд┐рдд 18 рдирд╡ре░ 2019  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: psf/requests

рдЕрдиреБрд░реЛрдзреЛрдВ рдиреЗ рдХрдИ рд╕рд╛рд▓ рдкрд╣рд▓реЗ requests[security] рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЬреЛрдбрд╝рд╛, рдХреНрдпреЛрдВрдХрд┐ рдкрд╛рдпрдерди рдХреЗ stdlib рдореЗрдВ ssl рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХреБрдЫ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдХрдореА рдереАред рдЪреВрдВрдХрд┐ PEP 466 рдХреЛ Python 2.7.9 рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, ssl рдореЙрдбреНрдпреВрд▓ рд╣реЛрд╕реНрдЯрдирд╛рдо рд╕рддреНрдпрд╛рдкрди рдФрд░ SNI рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред 2.7.9 2014 рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд╛рдпрдерди 3.7.0 рдиреЗ рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХреЛ рд╣реЛрд╕реНрдЯрдирд╛рдо рд╕рддреНрдпрд╛рдкрди рд╕реМрдВрдкрдХрд░ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдФрд░ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ред urllib3 рдореЗрдВ PyOpenSSL рд╕рдВрдЧрддрддрд╛ рдкрд░рдд рдкрджрд╛рд╡рдирдд ssl.match_hostname рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдмреИрдХрдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред

urllib3.contrib.pyopenssl.inject_into_urllib3 рд╕рд╛рде urllib3 рдХреЗ рдмрд┐рдирд╛ рд╢рд░реНрдд рдмрдВрджрд░-рдкреИрдЪрд┐рдВрдЧ рднреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред

PyOpenSSL рдЧрддрд┐рд╢реАрд▓ libffi рдХреЙрд▓рдмреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдЬрд┐рд╕реЗ cffi рдкреБрд░рд╛рдиреА рд╢реИрд▓реА рдХреЙрд▓рдмреИрдХ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдХреЙрд▓рдмреИрдХ рдЯреНрд░реИрдореНрдкреЛрд▓рд┐рди рдФрд░ рджреЗрд╢реА рдорд╢реАрди рдХреЛрдб рдХреЗ рдЧрддрд┐рд╢реАрд▓ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рдпрд╛ рддреЛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдФрд░ рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп рдореЗрдореЛрд░реА рдкреЗрдЬ рдпрд╛ рд╕рд╛рдЭрд╛ рдПрдордПрдордПрдкреА () рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╣реИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдбрд╛рдпрдирд╛рдорд┐рдХ рдХреЙрд▓рдмреИрдХ рдПрдХ рд╕реБрд░рдХреНрд╖рд╛ рдЬреЛрдЦрд┐рдо рд╣реИ рдФрд░ рдЕрдЪреНрдЫреЗ рдХрд╛рд░рдгреЛрдВ (deny_execmem) рдХреЗ рд▓рд┐рдП SELinux рдЬреИрд╕реЗ рд╕реБрд░рдХреНрд╖рд╛ рдврд╛рдВрдЪреЗ рджреНрд╡рд╛рд░рд╛ рдЕрд╡рд░реБрджреНрдз рд╣реИред рдЖрд░реНрдорд┐рди рд░рд┐рдЧреЛ рдФрд░ рдореИрдВрдиреЗ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рд╣реИред рдЕрдВрддрддрдГ рдЖрд░реНрдорд┐рди рдиреЗ cffi рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдХреЙрд▓рдмреИрдХ рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдкреБрд░рд╛рдиреЗ рдХреЙрд▓рдмреИрдХ рд╡рд╛рд▓реЗ рдХреБрдЫ рдореБрджреНрджреЛрдВ рдХреЛ https://cffi.readthedocs.io/en/latest/using.html#callbacks -old-style рдкрд░ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

PyOpenSSL рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рдХреЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдЬреЛ рд╕реНрд╡рдпрдВ asn1crypto рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред Asn1crypto рдФрд░ ctypes рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг Python рдХреЛ рд╣рд╛рд▓ рдХреЗ macOS, https://github.com/pyca/pyopenssl/issues/874 рдФрд░ https://github.com/wbond/asn1crypto/issues/158 рдкрд░ segfault рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред

https://bugzilla.redhat.com/show_bug.cgi?id=1535689 рдЬреИрд╕реЗ рдмрдЧ рдХреЗ рдХрд╛рд░рдг рдореИрдВрдиреЗ рдлреЗрдбреЛрд░рд╛ рдФрд░ рдЖрд░рдПрдЪрдИрдПрд▓ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХреЛ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдкреИрдЪ рдЕрдиреБрд░реЛрдзреЛрдВ рдФрд░ inject_into_urllib3 рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдордирд╛ рд▓рд┐рдпрд╛ред рдбрд┐рд╕реНрдЯреНрд░реЛрд╕ рдкреИрдЪ рдХреЗ рд╕рд╛рде рдЪрд▓ рд░рд╣рд╛ рд╣реИ https://src.fedoraproject.org/rpms/python-requests/blob/master/f/Don-t-inject-pyopenssl-into-urllib3.patch рдмрд┐рдирд╛ рдХрд┐рд╕реА рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдПрдХ рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗред .

рдореИрдВ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ:

1) requests[security] рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд┐рдХрд╛рд▓реЗрдВред
2) рдЕрдиреБрд░реЛрдзреЛрдВ рд╕реЗ urllib3 рдХреЗ рдмрд┐рдирд╛ рд╢рд░реНрдд рдмрдВрджрд░-рдкреИрдЪ рдирд┐рдХрд╛рд▓реЗрдВред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ #5443 рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдмрдВрдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХрдорд╛рддреНрд░ рдмрдХрд╛рдпрд╛ рд╡рд╕реНрддреБ requests[security] ред рдореИрдВ рдЗрд╕реЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫреБрдХ рд╣реВрдВ, рдЬреЛ рдЕрднреА рднреА <рдкрд╛рдпрдерди 2.7.9 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╣рд╛рдВ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╣рдо рдЗрд╕ рд╕рдкреНрддрд╛рд╣ urllib3 рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд▓рдШреБ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рдо рдЕрдЧрд▓реА рдЫреЛрдЯреА рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░ рдПрдХ рдмрд╣рд┐рд╖реНрдХрд░рдг рдиреЛрдЯрд┐рд╕ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдЖрдЧреЗ рдмрдврд╝реВрдВрдЧрд╛ рдФрд░ рдХрд▓ рдЗрд╕реЗ рд╣рд▓ рдХрд░реВрдВрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рди рд╣реЛред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдиреБрд░реЛрдз рдЕрдм рд╣рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИред

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рджрд┐рд╢рд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛-рдкреЙрдЗрдВрдЯ рдФрд░ urllib3: 91% (7,298,352 / 7,993,356) urllib3 рдХреЗ рд▓рд┐рдП Python 2.7.X рдбрд╛рдЙрдирд▓реЛрдб Python 2.7.9+ рдкрд░ рдереЗред рдЖрдЬ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбрд╛рдЙрдирд▓реЛрдб рдбреЗрдЯрд╛-рд╕реЗрдЯ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ред

рдЕрдиреБрдкрд╛рдд рдФрд░ рднреА рдмрдбрд╝рд╛ рд╣реИред RHEL 7 рдорд╢реАрдиреЛрдВ рдкрд░ Python 2.7.5 рдХрд╛ PEP 466 рдХрд╛ рдмреИрдХрдкреЛрд░реНрдЯ рднреА рд╣реИред

$ rpm -qa python
python-2.7.5-88.el7.x86_64
$ python
Python 2.7.5 (default, Sep 26 2019, 13:23:47) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>> ssl.SSLContext(ssl.PROTOCOL_SSLv23).check_hostname
False

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ #5443 рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдмрдВрдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХрдорд╛рддреНрд░ рдмрдХрд╛рдпрд╛ рд╡рд╕реНрддреБ requests[security] ред рдореИрдВ рдЗрд╕реЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫреБрдХ рд╣реВрдВ, рдЬреЛ рдЕрднреА рднреА <рдкрд╛рдпрдерди 2.7.9 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╣рд╛рдВ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╣рдо рдЗрд╕ рд╕рдкреНрддрд╛рд╣ urllib3 рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд▓рдШреБ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рдо рдЕрдЧрд▓реА рдЫреЛрдЯреА рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░ рдПрдХ рдмрд╣рд┐рд╖реНрдХрд░рдг рдиреЛрдЯрд┐рд╕ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдЖрдЧреЗ рдмрдврд╝реВрдВрдЧрд╛ рдФрд░ рдХрд▓ рдЗрд╕реЗ рд╣рд▓ рдХрд░реВрдВрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рди рд╣реЛред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдиреБрд░реЛрдз рдЕрдм рд╣рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

iLaus picture iLaus  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghtyrant picture ghtyrant  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

remram44 picture remram44  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

xsren picture xsren  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mitar picture mitar  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ