Requests: verify = Falseおよびrequests.packages.urllib3.disable_warnings

䜜成日 2014幎09月09日  Â·  57コメント  Â·  ゜ヌス: psf/requests

urllib3の1.9の時点で、次の譊告が呌び出しごずに1回衚瀺されたす。

/usr/local/lib/python2.7/site-packages/requests-2.4.0-py2.7.egg/requests/packages/urllib3/connectionpool.py:730: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html (This warning will only appear once by default.)
  InsecureRequestWarning)

䜿甚する堎合はverify=False 、それはたた、蚭定に有甚であろうrequests.packages.urllib3.disable_warnings() 

これは、すべおの人が同意するわけではない蚭蚈䞊の決定であるこずを理解しおいたす。 :)

Contributor Friendly Feature Request Planned

最も参考になるコメント

たたは単にこれを行いたす

requests.packages.urllib3.disable_warnings()

党おのコメント57件

warningsモゞュヌルを䜿甚するず、これらをグロヌバルレベルで無効にできるず思いたす。 さらに、ロギングを操䜜するには私が正しく芚えおいる堎合、 urllib3にアクセスする必芁がありたすそしおそれを文曞化したすので、HTTPSの蚌明曞怜蚌を䜿甚しないナヌザヌのためにこれを文曞化するこずに反察したせん接続。

私はこれらの譊告をそのたたにしおおくこずに匷く賛成です。 はい、圌らは迷惑ですが、理由もありたす。 どちらかずいえば、私はそれをオフにしお、私たちのものず亀換したいず思っおいたす = P

この時点で、 @ Lukasaず私がこの機胜で-1であるこずはかなり明癜です。 @kennethreitz @shazowご意芋はありたすか

譊告が重芁であるこずにある皋床同意したすが、考慮しなければならない芁玠は耇数あるず思いたす。

開発者の芳点からは、私がこれに぀いお知っおいるこずを知っおいるので、気が向いたらこれをオフにするこずができたす。 私はパッケヌゞに慣れおいないので、ドキュメントを読んだずきに譊告で、その゜リュヌションは実際には機胜したせんでした。 @Lukasaがrequests固有の䜕かを䜜るこずに぀いお提瀺したアむデアが奜きです。

ナヌザヌの芳点から、私pip今日pyvmomiをpipずずもにむンストヌルしたした。これは、内郚でrequestsを䜿甚したす。 requestsがサむレントサポヌトラむブラリである堎合にナヌザヌに返されるのは、実際には䞍透明な゚ラヌです。

はい、 requests.packages.urllib3.disable_warnings()は、譊告モゞュヌルのフィルタリングを䜿甚しおオフにするためのショヌトカットです。

この圱響に぀いお䜕らかの譊告を出すこずを匷くお勧めしたす。 urllib3を䌝播させる堎合は+0.5、努力を加えおリク゚スト固有のものを远加する堎合は+1。 -譊告がない堎合は-1。

必芁に応じお、urllib3譊告メッセヌゞを構成可胜にし、それをオヌバヌラむドしお、他の方法で同じロゞックに䟿乗できるようにするこずができたす。

繰り返しになりたすが、私はこのメッセヌゞをナヌザヌに敵察的であるずは考えおいたせん。非垞に䟡倀があるず思いたす。 これで、pyvmomiがTLS蚌明曞の怜蚌をオフにしたこずがわかりたした。これは、かなり重芁な情報です。

ずは蚀うものの、私はそれを沈黙させるためのより倚くの芁求を持っおいるこずに反察したせん。

ええ、本圓にこれはpyvmomiバグだず思いたす。 このように困惑したくない堎合は、ツヌルで譊告を無効にする必芁がありたす。 ツヌルが蚌明曞の怜蚌を実行しおいないため、䞀郚のツヌルが行っおいる接続がMITM攻撃にさらされる可胜性があるこずをナヌザヌに譊告するこずは、私たちの仕事ではありたせん。

ディスカッションの皆さん、ありがずう 皆さんのコメントに感謝し、物事が行われる方法の䟡倀ずその理由を理解するのを手䌝っおくれたした。 もっず䞀般的なケヌスを芋るのに苊劎しおいたした :)

時間が蚱す限り、今日はパッチに取り組み、「requests-y」の方法で沈黙させたす。 フィヌドバックは倧歓迎です

@invisiblethreat質問がある堎合は、IRCに気軜に

リク゚ストがWebhookで䜿甚される堎合を怜蚎したかどうか疑問に思っおいたす。 スクリプトのJSON出力を汚染しないように譊告を抑制しなければなりたせんたたは䜕かが足りないのですか

@macterra理解できたせん。 譊告を無効にするための代替戊略をお探しですか...

たた、Webhookが蚌明曞の怜蚌を無効にしおいる理由も非垞にわかりたせん。 そのたたにしおおきたいず思いたす。

さらに、結果を埗るためにスクリプトからstdoutをパむプ凊理しおいる堎合、譊告がstderrから出力されるため、JSON出力を汚染しないようにする必芁がありたす。

そうです、譊告がstderrにある堎合は、問題ありたせん。 コン゜ヌルの出力を芋おもわかりたせんでした。間違いです。

urllib3のドキュメントではなく、リク゚ストのドキュメントを指すようにこれをカスタマむズする必芁があるず思いたす。

この譊告機胜が䜕を達成するこずを意味し、譊告がどのように制埡されるこずを意味するのか理解できたせん。

requestsを䜿甚するモゞュヌルがあり、 verify=False匕数を䜿甚しおリク゚ストを行う必芁がありたす。 これにより、モゞュヌルのナヌザヌに䞍芁な譊告が衚瀺されたす。 䞍必芁な譊告は重芁な譊告をより芋にくくしたす、

私のモゞュヌルが譊告を無効にするこずは理にかなっおいたすが、アプリケヌションでrequestsを䜿甚しお、他のモゞュヌルでも譊告を無効にしたす。

モゞュヌルのナヌザヌに譊告を無効にするように指瀺する必芁がある堎合、状況は良くありたせん。 requestsを䜿甚しおいるずいう事実は、通垞、ナヌザヌが知る必芁のない目に芋えない実装の詳现です。 そしお、ナヌザヌはただすべおを沈黙させるか、泚意するオプションしかありたせん。

グロヌバルな譊告は圹に立たないず思いたす。

私は、サブクラス可胜性がurllib3.HTTPSConnectionPoolしお䞊曞き_validate_conn()ずmake requests他のモゞュヌルから避け隠蔜の譊告に私のモゞュヌルでの䜿甚が、それは単玔なこずのためにあたりにも倚くの仕事のようです。

この譊告機胜が䜕を達成するのか理解できたせん

モゞュヌルのナヌザヌに䞍芁な譊告が衚瀺されたす。

verify=Falseを蚭定するず、ネットワヌク接続が保護されなくなりたす。 それは、私芋ですが、䞍必芁な譊告ではなく、非垞に関連性の高い譊告です。 以前は蚌明曞を怜蚌しおいないこずを知らなかったナヌザヌは、これが真実であるこずを知っおいたす。

譊告がモゞュヌルにずっお䟡倀がない堎合、アプリケヌション内の他のモゞュヌルにずっお䟡倀がない可胜性がありたす1぀のネットワヌクポむントでセキュリティを砎棄するず、他の堎所でそれに぀いお叫ぶ意味はありたせん。 グロヌバルに無効にしおも問題はありたせん。

ナヌザヌが特定のリク゚ストに察しお明瀺的にverify=Falseをリク゚ストした堎合、譊告を衚瀺するこずの䟡倀がわかりたせん。 モゞュヌルの䜜成者ずしおverify=Falseを蚭定するずきは、ナヌザヌの芁求に応じお蚭定したすたたは、悪意を持っおいたすが、譊告を消すこずができるため、譊告も圹に立ちたせん。 確かに、私は悪意のあるこずを避けたいし、譊告をグロヌバルに沈黙させたくない。なぜなら、それはアプリケヌションの他の郚分が無意識のうちに安党でないこずをしおいるそれらの芁求に察する有甚な譊告を取り陀くからだ。

たた、ナヌザヌが怜蚌を明瀺的にオフにしおいるリク゚ストに察しお譊告をオンにするず、譊告が1回だけ䞎えられるため、ナヌザヌが譊告を必芁ずするリク゚ストも非衚瀺になりたす。 譊告は、特定のリク゚ストのURLに蚀及しおいないため、ナヌザヌにずっおもあたり圹に立ちたせん。

1぀のネットワヌクポむントでセキュリティを砎棄するず、アプリケヌションでセキュリティチェックが圹に立たなくなるこずに同意したせん。たた、ブラりザベンダヌも同様です。 ブラりザを䜿甚するず、個々のURLのセキュリティチェックをバむパスできたすが、残りのURLは匕き続きチェックするので、気に入っおいたす。

内郚ネットワヌク内の自己眲名蚌明曞を䜿甚しお内郚サヌバヌず通信するだけでなく、倖郚ホストずも通信するツヌルがある堎合、倖郚通信を確認したいず思いたす。 これは、ナヌザヌずしお、誀っお保護されおいないリク゚ストに関する譊告を衚瀺したい状況です。

私がservice_foo 、誰かがそれをアプリで䜿甚しおいるず考えおください。

import service_foo
import requests

session = service_foo.Session('https://10.0.0.1', verify=False)
data = session.get_data()
requests.put('https://example.com/submit', data=data)

service_fooには2぀のオプションがありたす

  1. グロヌバルセキュリティ譊告をオンにしたす

    • アプリケヌションがhttps://10.0.0.1通信するず、ナヌザヌは垞に譊告を受け取りたす

    • https://example.com/submitぞのリク゚ストが安党でなくおも、ナヌザヌに譊告が衚瀺されるこずはありたせん

  2. グロヌバルセキュリティ譊告をオフにしたす。

    • https://example.com/submitぞのリク゚ストが安党でなくおも、ナヌザヌに譊告が衚瀺されるこずはありたせん

どちらのオプションも良いずは思いたせんが、オプション1は誀譊報を発しおいるため、より悪いです。 しかし、モゞュヌルを䜿甚した堎合の副䜜甚ずしお、ナヌザヌのセキュリティチェックをオフにするのは気が進たない。

シェルスクリプトを䜿甚しおこれを行うず、ナヌザヌはより幞せで安党になりたす。

curl --insecure -o data https://10.0.0.1/get_data
curl --upload-file data https://example.com/submit

私にずっおは、Pythonプラットフォヌムの構成が壊れおいる堎合にのみ譊告を出すのが理にかなっおいたす。 InsecureRequestWarningメッセヌゞでリンクされおいるhttps://urllib3.readthedocs.org/en/latest/security.htmlペヌゞは、プラットフォヌムの問題を修正する方法を瀺すこずを目的ずしおいたす。 ナヌザヌが怜蚌のスキップを芁求した堎合、ナヌザヌがhttpsではなくhttp URLを芁求した堎合に譊告が衚瀺されないように、譊告が衚瀺されないようにする必芁がありたす。

ナヌザヌが特定のリク゚ストに察しお明瀺的にverify = Falseをリク゚ストした堎合、譊告を衚瀺するこずの䟡倀はわかりたせん。

「ナヌザヌ」は誰ですか あなたが2人の聎衆を混乱させおいるず私は信じおいるので、あなたの投皿を通しお、この質問は私の頭に浮かび続けたした。

モゞュヌルの䜜成者ずしおverify = Falseを蚭定した堎合、ナヌザヌの芁求によっお蚭定したすたたは悪意を持っおいたす。

たたはあなたは怠慢です。 自己眲名蚌明曞ず盞互運甚できないずいうナヌザヌからの苊情があったため、蚌明曞の怜蚌をオフにするこずはその問題に察凊する方法ではないにもかかわらず、蚌明曞の怜蚌をオフにしたした。

これにより、アプリケヌションの他の郚分が無意識のうちに安党でない芁求を行っおいる堎合に、これらの芁求に察する有甚な譊告が削陀されたす。

この文は私を困惑させたす。 これは、アプリケヌションが_無意識のうちに_安党でない芁求を行ったずきに譊告するこずは蚱容できるが、アプリケヌションが_知っおいるように_芁求を行っおも問題がないこずを瀺唆しおいたす。 安党でないリク゚ストを故意に行うこずは、無意識のうちにそうするこずよりも「より安党」であるずどのように芋なされるべきかわかりたせん。

たた、ナヌザヌによっお怜蚌が明瀺的にオフにされおいるリク゚ストに察しお譊告をオンにする

どのナヌザヌですか モゞュヌルの䜜成者ず「ナヌザヌ」をどのように区別したすか

譊告は、特定のリク゚ストのURLに蚀及しおいないため、ナヌザヌにずっおもあたり圹に立ちたせん。

譊告スパムを生成するリスクがあるため、譊告にはリク゚ストのURLを蚘茉しないでください。 「この特定の通信が危険にさらされおいる」ではなく、「このアプリケヌションが危険にさらされおいる」ず_䞀床_譊告したす。

ブラりザを䜿甚するず、個々のURLのセキュリティチェックをバむパスできたすが、残りのURLは匕き続きチェックするので、気に入っおいたす。

無効な蚌明曞を䜿甚しおURLにアクセスするず、ブラりザベンダヌは_è­Šå‘Š_したす。 ダむアログボックスを印刷し、URLバヌを赀で匷調衚瀺したす。 それが私たちがしおいるこずです。 私たちはあなたが䜕かをするのを止めおいるのではなく、ただ「ねえ、これは悪い」ず蚀っおいるだけです。 あなたが私たちに求めおいるこずは、ナヌザヌが特定のURLに察しおその赀い譊告をオフにするこずを蚱可するようにブラりザベンダヌに求めるこずず同じであり、セキュリティぞの圱響が非垞に倧きいため、そうするこずを拒吊するこずを保蚌したす。

内郚ネットワヌク内の自己眲名蚌明曞を䜿甚しお内郚サヌバヌず通信するだけでなく、倖郚ホストずも通信するツヌルがある堎合、倖郚通信を確認したいず思いたす。

いいえ、通信をすべお確認する必芁がありたす。 自己眲名蚌明曞を確認しおください 取埗する予定の蚌明曞を取埗したこずを確認したす。 verify=Falseは、セキュリティに察する倧ハンマヌのアプロヌチず芋なす必芁がありたす。事実䞊、「セキュリティをねじ蟌み、機胜させるだけです」ず蚀っおいたす。 それは絶察に問題ありたせん、あなたにはそれを蚀う暩利がありたす、しかし私達はそれを安党でないず呌ぶ矩務がありたす。

どちらのオプションも良いずは思いたせんが、オプション1は誀譊報を発しおいるため、より悪いです。

オプション1は誀ったアラヌムを発するのではなく、実際のアラヌムを発したす。 10.0.0.1ぞの通信は_安党でない_ので、他のふりをしおはいけたせん。

シェルスクリプトを䜿甚しおこれを行うず、ナヌザヌはより幞せで安党になりたす。

ナヌザヌはもっず幞せかもしれたせんが、安党ではありたせん。 以前ずたったく同じように安党です。 この譊告をオフにするず、魔法のように蚌明曞の怜蚌が無効になるずいう印象を受けおいるようですが、そうではありたせん。 この応答の最埌で、これに぀いおもう䞀床觊れたす。

私にずっおは、Pythonプラットフォヌムの構成が壊れおいる堎合にのみ譊告を出すのが理にかなっおいたす。

いいえ、Pythonプラットフォヌムの構成が壊れおいお、未確認のリク゚ストを芁求しなかった堎合は、倧倱敗するはずです。 プラットフォヌムが安党なTLS接続を確立できない堎合は、ナヌザヌが verify=False蚭定しお気にしないように明瀺的に指瀺した堎合を陀いお、絶察に接続しないでください。やろうずしおいるのは危険です。

あなたは誀解の䞋で働いおいるず思うので、私は䜕かを非垞に明確にしたいず思いたすa verify=False 私たちの譊告行動を蚭定するか、たたはb sslモゞュヌルを故意に劚害する。 bを捕たえるこずはできず、譊告もしたせん。 これは、あなたが提起した「プラットフォヌムの問題」の抂念に該圓する唯䞀の状況です。 urllib3のヘルプペヌゞのアドバむスは、信頌できる蚌明曞のバンドルや手動での蚌明曞の怜蚌など、プラットフォヌムに関連する必芁なすべおの手順を実行するため、適甚されたせん。

Webコミュニティには、信頌されたルヌト蚌明曞によっお眲名された蚌明曞のみを怜蚌する必芁があるずいう危険な芋方がありたす。 この芋方は完党に芋圓違いです。 自己眲名蚌明曞に遭遇した堎合は、それらを十分に怜蚌する必芁がありたす。 それは完党に実行可胜です 自己眲名蚌明曞を.pemファむルに远加し、匕数ずしおverify枡したす。

バンドルされおいる.pemファむルずの組み合わせで問題が発生した堎合は、お知らせください。mkcert.orgを拡匵しお、独自の蚌明曞を信頌できるルヌトず連結できるようにしたす。 ただし、 verify=Falseが安党であるず停っおはいけたせん。単に安党ではありたせん。

たた、ナヌザヌが怜蚌を明瀺的にオフにしおいるリク゚ストに察しお譊告をオンにするず、譊告が1回だけ䞎えられるため、ナヌザヌが譊告を必芁ずするリク゚ストも非衚瀺になりたす。

これも少し困惑したす。 verify=Falseを蚭定するこずで、そのリク゚ストに察しお明瀺的にオフにするこずもできたすが、リク゚ストを䜜成するポむントを超えおそれを䌝える方法はありたせん。 たた、蚌明曞の怜蚌を無効にしおいるため、それを超えお䌝達する理由はありたせん。 あなたがそうした文脈は、私たちやあなたのアプリを䜿甚しおいる人には䜕の圱響もありたせん。

あなたが私たちに求めおいるこずは、ナヌザヌが特定のURLに察しおその赀い譊告をオフにするこずを蚱可するようにブラりザベンダヌに求めるこずず同じであり、セキュリティぞの圱響が非垞に倧きいため、そうするこずを拒吊するこずを保蚌したす。

私のブラりザでは、「非垞に安党でない」未確認の蚌明曞を氞続的に受け入れるこずができたす。

10.0.0.1ぞの通信は安党ではないため、他のふりをしおはなりたせん。

接続は、デゞタル蚌明曞を怜蚌できないずいう点で安党ではありたせんが、蚌明曞を怜蚌しおも、通信しおいるサヌバヌが安党であるかどうかは実際にはわかりたせん。 しかし、閉じたネットワヌク内のサヌバヌず話しおいるずきは、サヌバヌのセキュリティを本圓に確認できたす。

あなたは誀解の䞋で働いおいるず思うので、私は䜕かを非垞に明確にしたいず思いたすaverify = False譊告動䜜を蚭定するか、b意図的に蚭定せずにリク゚ストで未怜蚌のHTTPSリク゚ストを行う方法はありたせんSSLを劚害する

私は、ナヌザヌが私に䞎えたURLの蚌明曞チェックず譊告を無芖したいずいうナヌザヌの垌望を尊重するこずによっお、モゞュヌル内でどのようにしお善良な垂民になるこずができるのか疑問に思っおいたす。 そしお、譊告モデルが远加する䟡倀。 verify=Falseを含むリク゚ストで、ナヌザヌに譊告が衚瀺される堎合はどうなりたすか

譊告メカニズムが怠慢なコヌドをどのようにキャッチできるかわかりたせん。なぜなら、コヌディングがずさんなためにリク゚ストが行われたのか、ナヌザヌがリク゚ストしたためにリク゚ストが行われたのかを区別できないからです。 requestsようなモゞュヌルもセキュリティポリシヌを指瀺するべきではないず思いたす。 譊告は通垞、開発者が誀ったコヌドを修正できるようにするこずを目的ずしおいるこずを理解したしたが、この譊告はそのようなものではありたせん。 譊告がナヌザヌの䞀般的な教育のためだけのものである堎合、ナヌザヌがそれを隠すための簡単な方法があるはずです。

譊告を受け取るこずは、プログラムの出力を台無しにするので、芋た目だけではありたせん。

譊告の負の倀しか衚瀺されないので、そのようなグロヌバルポリシヌの倉曎をそこで非衚瀺にするのが嫌いな堎合でも、モゞュヌルで譊告をオフにしたす。

Webコミュニティには、信頌されたルヌト蚌明曞によっお眲名された蚌明曞のみを怜蚌する必芁があるずいう危険な芋方がありたす。 この芋方は完党に芋圓違いです。

そのような芋方があるこずを知りたせんでした。 ルヌト蚌明曞によっお眲名された蚌明曞は、サむトのセキュリティに぀いお実際には䜕も蚌明したせん。 悪いこずをしたいのなら、匿名の蚌明曞を取埗するのは安いです。

自己眲名蚌明曞に遭遇した堎合は、それらを十分に怜蚌する必芁がありたす。 それは完党に実行可胜です 自己眲名蚌明曞を.pemファむルに远加し、それを匕数ずしお枡しお怜蚌したす。

ナヌザヌは、内郚の信頌できるネットワヌクのように、蚌明曞を取埗するための安党なチャネルが必芁になりたす。 ただし、サヌバヌ自䜓が同じ内郚ネットワヌク内にある堎合は、あたりメリットがありたせん。 しかし、これはいずれにせよナヌザヌが決定するものであり、モゞュヌルにポリシヌを課すこずはできたせん。

ほずんどの堎合、 @ kankriに同意したす。 それが本来の蚭蚈意図でした。

私は䜕かを提案したす—デフォルトで無効にしたすが、それを再床有効にする、たたはそれをオンにする方法を文曞化するための独自の機胜を持っおいたす。 意図したずおりにコヌドを䜿甚するために、ナヌザヌが邪魔にならないようにしたいのです。 verify=Falseは機胜ですが、ベストプラクティスではありたせん。 それは私たちの仕事ではありたせん。

verify=Falseが機胜であるこずに同意したすが、 params=たたはcert=ず同じレベルの機胜であるこずに同意したせん。 これはデフォルトで安党な倀に蚭定され、安党でない倀に蚭定される可胜性がある機胜です。 䟿宜のためにセキュリティを窓の倖に投げ出すこずは、人々にずっお巚倧で魅力的なオプションであり、衝動に抵抗する必芁があるず思いたすただし、犁止されるべきではありたせん。 私は垞に「あなたは明らかに䞍安であるに違いない」ずいう考え方に傟倒したす。それが1぀ではなく2぀のスむッチをフリックするこずを意味するかどうかは気にしたせん。

ずにかく、これは私のものではなくあなたの呌びかけです。 =

@kankriず@kennethreitzの発蚀に同意したす

verify = Falseは機胜ですが、ベストプラクティスの機胜ではありたせん。 それは私たちの仕事ではありたせん。

それをうたくたずめたす。

譊告を無効にしたい人のために、これはそれを行う方法です。 暙準ラむブラリの䞀郚である譊告モゞュヌルを䜿甚する必芁がありたす。

import warnings
import requests
from requests.packages.urllib3 import exceptions

with warnings.catch_warnings():
    warnings.simplefilter("ignore", exceptions.InsecureRequestWarning)
    warnings.warn('a non-requests warning is not blocked')
    print requests.get('https://rsa-md5.ssl.hboeck.de/', verify=False)

これにより、カテゎリInsecureRequestWarning譊告を無芖する譊告フィルタが構成されたす。 出力は次のようになりたす。

test.py:46: UserWarning: a non-requests warning
  warnings.warn('a non-requests warning is not blocked')
<Response [403]>

テストサむトはたたたた403 Forbiddenペヌゞを返したすが、ここでは重芁ではありたせん。

バンドルされおいるurllib3パッケヌゞのクラスを䜿甚する必芁があり、トップレベルのurllib3パッケヌゞがむンストヌルされおいる堎合は、そのクラスを䜿甚しないこずに泚意しおください。

コヌドの可胜な限り最小の領域でコンテキストマネヌゞャヌを䜿甚する小さな関数を䜜成できたすおそらくそうすべきです。

def silent_unverified_get(*args, **kwargs):
    kwargs['verify'] = False
    with warnings.catch_warnings():
        warnings.simplefilter("ignore", exceptions.InsecureRequestWarning)
        return requests.get(*args, **kwargs)

たたは単にこれを行いたす

requests.packages.urllib3.disable_warnings()

@ルカサ

たたは単にこれを行いたす

requests.packages.urllib3.disable_warnings()

リク゚ストマニュアルにこの機胜に぀いおの蚀及がないこずを陀いお。

それを知っおいる人からはほど遠いですが、 warningsモゞュヌルは、Pythonプログラマヌが譊告を無効にしたいずきに泚目すべき暙準ツヌルであるず私は䞻匵したす。 これは暙準ラむブラリの䞀郚であり、十分に文曞化されおいたす。

warningsぞのrequestsドキュメントに入れるこずをお勧めしたす。たたは、察応するenable_warningsがある限り、必芁に応じお䟿利なdisable_warnings関数ぞの参照を入れるこずをお勧めしたす。関数そのような関数はないようです。

繰り返したすが、䞀般的に譊告を無効にしたくありたせん。 コヌドでverify = Falseを_明瀺的に_蚭定したずきに、この特定の譊告を消したいだけです。 この特定の圹に立たない譊告ずは異なり、他の有甚な譊告があるかもしれたせん。 これに぀いお理解するのがずおも難しいのは䜕ですか

@zaitcev自分自身を繰り返すリスクがありたす

requests.packages.urllib3.disable_warnings()

そしお、それでもあなたにずっお広すぎる堎合

from requests.packages.urllib3.exceptions import InsecureRequestWarning

requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

最埌に、 @ zaitcevに泚意しおください。今行ったばかりの憀慚した口調を䜕の恩恵も受けられないこずがわかりたす。 私たちはすべおボランティアであり、あなたに物を䜜るために䞎える時間は限られおいるこずを忘れないでください。 あなたが扱いたい方法で私たちを扱っおみおください。

@zaitcevこれはrequestsモゞュヌル自䜓では倉曎されないようですが、他のコメントに入力したコヌドを䜿甚できるこずを願っおいたす。 これにより、urllib3によっお発行される譊告を遞択的に無効にできるはずです。

次の方法で抑制するこずもできたす。

with warnings.catch_warnings():
  warnings.filterwarnings("ignore", message=".*InsecurePlatformWarning.*")
  ...

私の堎合、リク゚ストを盎接䜿甚しおいないので、このように抑制するこずで、埌で壊れるこずを少し心配する必芁がなくなりたす。

@zaitcevこれたでのすべおの提案をたずめるず、次のようなこずができたす。

verify = False
if not verify:
    from requests.packages.urllib3.exceptions import InsecureRequestWarning
    requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
r = requests.get('https://www.example.com', verify=verify)

@utkonosこれにより、埌続のすべおのリク゚ストに察しお譊告が無効のたたになりたす。

他の䟋をたずめお、デフォルトのSessionを拡匵したしたずにかく、 requests.getず他のショヌトカットが䞀時的なSession䜜成するため

from requests.packages.urllib3 import exceptions

class Session(requests.sessions.Session):

    def request(self, *args, **kwargs):
        if not kwargs.get('verify', self.verify):
            with warnings.catch_warnings():
                warnings.simplefilter('ignore', exceptions.InsecurePlatformWarning)
                warnings.simplefilter('ignore', exceptions.InsecureRequestWarning)
                return super(Session, self).request(*args, **kwargs)
        else:
            return super(Session, self).request(*args, **kwargs)

requestsからのすべおの譊告を無効にするこずは、おそらく悪い考えです。もう少し良いかもしれたせん

import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

私がこれをどのように凊理したかを芁玄するず

import warnings
with warnings.catch_warnings():
    warnings.simplefilter("error") 
    try:
        req = requests.get("https://an-insecure-server.com")
    except (RuntimeWarning, requests.exceptions.SSLError)::
        log.error("Making an insecure request")
        warnings.simplefilter("ignore")
        req = requests.get("https://an-insecure-server.com")

これにより、リク゚ストが安党でないかどうかを確認し、urllib譊告を非衚瀺にしお、ナヌザヌに察しお独自のフォヌマットの譊告を出すこずができたす。 リク゚ストは2回行う必芁がありたす。 陀倖句の幅を狭めるように線集されたした。

except Exception:は非垞に広いです。 あなたは本圓にそれを望んでいたせん。

䞊蚘は、この議論の䞡偎の懞念に察凊するための䜕らかの方法になりたす。

代わりにキャッチできるExceptionのサブクラスをスロヌしたせんか

たたはlogging.captureWarnings()䜿甚したす

別の方法は、urllib3が関係しおいるこずを知り、その名前空間をハヌドコヌディングするこずです。tuukkamustonenによるコメントを参照しおください。 これが私の䞻な反察意芋でした。圌らはそれを正しく機胜させるこずができたでしょう、私はプルリク゚ストでパッチを提䟛するこずさえしたした。 しかし、圌らは問題が存圚するこずを吊定し、すべおのナヌザヌに「䟋倖を陀いお」や「requests.packages.urllib3むンポヌト䟋倖から」のようなひどい回避策を考え出すように蚀いたす。 この時点で、誰かが圌らがずっず間違っおいたこずを認めなければならないので、私たちは立ち埀生しおいたす。

これが私の䞻な反察意芋でした。圌らはそれを正しく機胜させるこずができたでしょう、私はプルリク゚ストでパッチを提䟛するこずさえしたした。 しかし、圌らは問題が存圚するこずを吊定し、すべおのナヌザヌに「䟋倖を陀いお」や「requests.packages.urllib3むンポヌト䟋倖から」のようなひどい回避策を考え出すように蚀いたす。 この時点で、誰かが圌らがずっず間違っおいたこずを認めなければならないので、私たちは立ち埀生しおいたす。

@zaitcev繰り返しになりたすが、これはできる限り最善を尜くしおいるボランティアコミュニティであるこずを思い出させおください。 私たちはこの問題を議論のために自由に残したした、私たちはそれをロックしたり、さらなる議論を劚げようずはしたせんでした。 私たちは_あなたに耳を傟けおいたす_。 私たちが行っおいないのは、状況の評䟡にすぐに同意するこずです。 単なるナヌスケヌスよりも倚くのナヌスケヌスに関心があり、それらすべおのニヌズのバランスを取る必芁がある可胜性を考慮しおください。

あなたのプルリク゚ストに関しおは、あなたが垞に無芖しおいる_非垞に特定の理由_のために拒吊されたした むアンを匕甚しお自分自身を匕甚させおください

締めくくりの声明は次のずおりでした。「これはほずんどurllib3にあり、そこでの受け入れに䟝存するので、そこで進展が芋られるたでこれを閉じたす。 」匷調鉱山

今日の時点で、urllib3にこの問題に関連するプルリク゚ストたたは問題はただ衚瀺されおいたせん。 このプロゞェクトの誰もあなたの邪魔をしたり、この䜜業の発生を劚げたりしおいたせん。_珟圚あなたに同意しおいない_ため、私たちは自分たちでそれを行うこずを遞択しおいたせん。

ただし、このうさぎの穎を再び䞋るリスクがあるので、繰り返したす。

これが私の䞻な反察意芋でした。圌らはそれを正しく機胜させるこずができたはずです。

私はあなたのパッチがこの仕事を「正しく」するこずを信じおいたせん。 このスレッドで䜕床も蚀ったように、珟圚の動䜜は望たしいず思いたす。 安党でないTLS芁求を行うこずは悪い考えであり、ナヌザヌはそうしないように譊告されるべきです。

私の立堎では、特にパスワヌドを凊理しおいるシステムでは、ナヌザヌが適切に保護されおいないTLS芁求を行っおいるずきに_知る䟡倀がありたす_。

このスレッドには、これらの譊告を無効にするためのリク゚ストレベルのフックを怜蚎する必芁があるずいうverify=Falseずverify=None間に以前は存圚しなかった区別を远加する必芁があるず考えおいたす。 前者の方が埌者よりもはるかに簡単であるこずがわかりたす。

verify = Falseずverify = Noneを区別しないように+1したす。 私はどちらかをサポヌトしたす

  • 新しいパラメヌタたずえば、noInsecureWarningsを远加する、たたは
  • リク゚ストでurllib3譊告をむンタヌセプトし、独自の譊告を発行するので、a「requests.packages.urllib3.exceptions.InsecureRequestWarning」ずにかくすでにリク゚スト固有ですが、リク゚ストが移行するず壊れたすよりも怖くないものを抑制するこずができたすb譊告はリク゚スト固有のURLを指すこずができたす譊告がシェヌディングされおいるため、珟圚のURLは関係ありたせん

そしお、これが修正されるかどうかにかかわらず、リク゚ストをサポヌトしおくれたすべおのボランティアに感謝したすそれは玠晎らしいラむブラリです:)

これは玠晎らしいラむブラリです、あなたのすべおの努力に感謝したす。

最近Pythonパッケヌゞをアップグレヌドし、倚数の新しいInsecurePlatformWarningプリントアりトに気付いた埌、この問題に遭遇したした。 ですから、私は自分のナヌスケヌスに貢献しおいたす。これは説埗力があるず思いたす。

リク゚ストを䜿甚しお、4぀の異なる環境でjenkinsサヌバヌを管理しおいたす。 3぀の環境開発、ステヌゞング、本番にはすべお有効な蚌明曞がありたす。 4番目の環境は、開発者がロヌカルマシンで倉曎をテストするために䜿甚できるvagrant仮想ボックスです。 これには有効な蚌明曞がありたせんが、ポリシヌの問題ずしお、すべおのサヌバヌ構成が暗号化されおいない芁求を拒吊したす。

環境のjenkins接続蚭定サヌバヌ名、トヌクンなどには、SSL怜蚌をオフにするための特定のフラグが含たれおいたす。これはvagrant環境ではTrueにのみ蚭定されたす。

私の蚭定では、プロゞェクトがかなり倧きく、リク゚ストラむブラリの有無にかかわらず、倚くのリク゚ストが行われる可胜性があるため、譊告をグロヌバルに無効にするこずはお勧めできたせん。 プロゞェクトの䞀郚にフラスコアプリケヌションやその他のマルチスレッドのケヌスが含たれおいる堎合を陀いお、スコヌプ内の譊告を無効にしおも問題ありたせん。

私の意芋では、verify = Falseの䜿甚はサポヌトされ、譊告なしで期埅どおりに機胜するはずです。 これをい぀蚱可するか、蚱可するかどうかは、アプリケヌション開発者が決定したす。 たずえば、䞀般的な䜿甚のためにブラりザを䜜成しおいる堎合、赀いテキストがたくさんある倧きな確認ダむアログを衚瀺せずに、これをTrueに蚭定するこずは決しおありたせん。 しかし、私がサヌバヌずクラむアントを所有しおいお、蚌明曞を発行しないずいう独自の理由がある堎合は、クリヌンなログを䜜成し、他の朜圚的な問題を隠さないようにする必芁がありたす。

これをい぀蚱可するか、蚱可するかどうかは、アプリケヌション開発者が決定したす。

この論争は私があなたず違うずころです。 い぀䜿甚するかは開発者次第だず思いたす。 しかし、その遞択が受け入れられるかどうかを刀断するのは_user_次第だず思いたす。 ナヌザヌが開発者の遞択によっおリスクにさらされおいるこずを理解し、そのリスクを評䟡できるこずは_重芁_です。

しかし、私がサヌバヌずクラむアントを所有しおいお、蚌明曞を発行しないずいう独自の理由がある堎合は、クリヌンなログを䜜成し、他の朜圚的な問題を隠さないようにする必芁がありたす。

そしお、ロギングコンテキストマネヌゞャヌを䜿甚しお譊告をキャプチャするこずで、これを行うこずができたす。 たた、リク゚ストでこの譊告をリク゚ストに固有のものにしお、キャプチャしやすくするこずも怜蚎しおいたすが、ただ発生しおいたせん。

@ jamie-sparkedに䌌た状況がありたす。

セキュリティの匷化に関するLukasaのポむントは理解しおいたすが、ナヌザヌに最適なものを決定させる必芁があるず思いたす。
Requestsはラむブラリであり、゚ンドナヌザヌアプリケヌションではありたせん。 IMOでは、開発者をナヌザヌず芋なす必芁がありたす。
アプリケヌション開発者は、蚌明曞の怜蚌をオフにするこずを決定した堎合぀たり、verify = False、セキュリティの間違いに぀いお責任を負う必芁がありたす。

開発者ずしお、私は自分が䜕をすべきかを指瀺しようずするラむブラリよりも柔軟性を重芖しおいたす。

ずころで、他の人が蚀ったように、私はリク゚ストが_玠晎らしい_ず思いたす、そしお私はあなたのすべおの努力に感謝したす。 ありがずう。

@thalesac開発者に決定を任せたす。 このスレッドで䜕床も説明されおいるように、この譊告をオフにするこずはかなり可胜です。 ただし、すべおの譊告をオフにするスむッチは1぀ではありたせん。手動で、それぞれを行う必芁がありたす。 これは、ナヌザヌに各安党ガヌドを_意識的に_削陀させる詊みです。

倚局防埡ず考えおください。 フットガンの䟋えを䜿甚するために、安党装眮がオンで匟䞞が入っおいない銃ずマガゞンをお枡ししたす。 verify=Falseすべおの譊告を無効にした堎合、それは、マガゞンが挿入されたずきに自動的に安党を無効にしおラりンドをチャンバヌする銃を持っおいるのず同じです。 䟿利 もちろん。 危険 あなたは賭けたす。

恐れ入りたすが、あなたのアナロゞヌモデルには同意したせん。
verify = Falseはあなたの安党/セキュリティメカニズムだず思いたす。 明瀺的にたたは手動で無効にした堎合、悪者を撃っおいるずきに銃が垞に譊告を発するこずは望たしくありたせん。 明らかに、デフォルトの動䜜はセキュリティの考え方を匷制する必芁がありたす。
ずにかく、これは私の芋解であり、プロゞェクトに最適だず思うこずを実行する必芁があるこずを理解しおいたす。 たぶんそれが良いラむブラリである理由です。 :)
ありがずう

私はLukasaに間違いなく同意したす。最初のセキュリティです。開発者ずしお、コヌドの䞀郚でverify = Falseを䜿甚しおいる堎合、譊告を衚瀺したくない堎合は、譊告を非衚瀺にする必芁がありたす。

ずにかく、あなたのチヌムワヌクの優れたラむブラリの倧ファン、それを維持し、忍耐が私たちに応答するために+10000。

私の芋方では、アプリケヌションがナヌザヌによっお蚭定されたURLを䜿甚しおいる堎合、ナヌザヌには怜蚌を無効にするオプションを提䟛する必芁がありたすが、どのような状況でも譊告が衚瀺されるはずです。 開発者ずしお、有効な蚌明曞を持っおいるずは思われないURLに接続しおいるこずが䜕らかの理由でわかっおいる堎合蚌明曞の支払いを行わない内郚サヌビス、テストなど、無効にするオプションが必芁です。怜蚌を無効にするずずもに譊告。

同時に、譊告をグロヌバルに䞀床に無効にしたい状況が発生するこずは䞀般的ではないず思いたす。そうするず、黙っお無芖されるセキュリティの問題が簡単に発生するためです。

requests.packages.urllib3.disable_warnings()はいそれは仕事です

やあ

requests.packages.urllib3.disable_warnings()はもう機胜しおいたせんか それは私のために譊告を沈黙させおいたした。 ここで、譊告の無効化関数を呌び出しおいたす。譊告関数が呌び出されるバックトレヌスの䟋を次に瀺したす。

 [+] https://drupal.org/ぞのリダむレクトを受け入れたした
 > /usr/lib/python2.7/dist-packages/urllib3/connectionpool.py791_validate_conn
 -> warnings.warn
 Pdbbt
 / root / droopescan / droopescan5
 -> droopescan.main
 /root/droopescan/dscan/droopescan.py55main
 -> ds.run
 /usr/local/lib/python2.7/dist-packages/cement/core/foundation.py764run
 -> self.controller._dispatch
 /usr/local/lib/python2.7/dist-packages/cement/core/controller.py466_dispatch
 -> funcを返す
 /usr/local/lib/python2.7/dist-packages/cement/core/controller.py472_dispatch
 -> funcを返す
 /root/droopescan/dscan/plugins/internal/scan.py114default
 -> follow_redirects
 /root/droopescan/dscan/plugins/internal/scan.py230_process_cms_identify
 -> if inst.cms_identifyurl、opts ['timeout']、self._generate_headershost_header== True
 /root/droopescan/dscan/plugins/internal/base_plugin_internal.py910cms_identify
 ->ヘッダヌ
 /root/droopescan/dscan/plugins/internal/base_plugin_internal.py827enumerate_file_hash
 -> r = self.session.geturl + file_url、timeout = timeout、headers = headers
 /usr/lib/python2.7/dist-packages/requests/sessions.py480get
 -> return self.request 'GET'、url、** kwargs
 /usr/lib/python2.7/dist-packages/requests/sessions.py468request
 -> resp = self.sendprep、** send_kwargs
 /usr/lib/python2.7/dist-packages/requests/sessions.py576send
 -> r = adapter.sendrequest、** kwargs
 /usr/lib/python2.7/dist-packages/requests/adapters.py376send
 ->タむムアりト=タむムアりト
 /usr/lib/python2.7/dist-packages/urllib3/connectionpool.py559urlopen
 -> body = body、headers = headers
 /usr/lib/python2.7/dist-packages/urllib3/connectionpool.py345_make_request
 -> self._validate_connconn
 > /usr/lib/python2.7/dist-packages/urllib3/connectionpool.py791_validate_conn
 -> warnings.warn

以䞋はpip freezeの出力です、私はdebianテストを䜿甚しおいたす

 argparse == 1.2.1
 beautifulsoup4 == 4.4.1
セメント== 2.6.2
 chardet == 2.3.0
 colorama == 0.3.3
カバレッゞ== 4.0.3
暗号化== 1.2.1
 distlib == 0.2.1
 -e git + git @ github.comdroope / droopescan.git @ 6524a9235e89a6fdb3ef304ee8dc4cb73eca0386egg = droopescan-開発
 enum34 == 1.1.2
 funcsigs == 0.4
先物== 3.0.4
 html5lib == 0.999
 httplib2 == 0.9.1
 idna == 2.0
 ipaddress == 1.0.16
 lxml == 3.5.0
氎銀== 3.5.2
モック== 1.3.0
 ndg-httpsclient == 0.4.0
 nose == 1.3.7
 pbr == 1.8.1
 pyOpenSSL == 0.15.1
 pyasn1 == 0.1.9
 pycurl == 7.21.5
 pystache == 0.5.4
 python-apt == 1.1.0b1
 python-debian == 0.1.27
 python-debianbts == 2.6.0
 reportbug == 6.6.6
リク゚スト== 2.9.1
応答== 0.3.0
再詊行== 1.3.3
 6 == 1.10.0
 urllib3 == 1.13.1
ホむヌル== 0.26.0
 wsgiref == 0.1.2

ありがずう、
ペドロ

disable_warningsは、譊告関数の呌び出しを劚げるものではなく、出力を抑制するだけです。 他のコヌドですべおの譊告が有効になっおいるず、問題が発生する可胜性がありたす。

こんにちは@Lukasa 、

ifの埌にブレヌクポむントを眮きたす。 結局、私はあたりにも倚くの問題に遭遇したので、debianテストの䜿甚をやめたした、そしおこれはそれらの1぀である可胜性が非垞に高いです。 私は自分のコメントを無芖したす。䜕が起こったのかはわかりたせんが、倚くの人に圱響を䞎えるものではない可胜性がありたす。

ありがずう
ペドル

ええ、あなたがdebianのパッケヌゞを䜿っおいたのなら、圌らのベンダヌのないロゞックがここで䜕かを壊した可胜性がありたす。

verify=Falseを指定しお安党でない芁求を行い、他の堎所で行われた他の芁求の譊告に干枉するこずなく、その芁求の譊告を衚瀺したくない堎合は、完党に合理的ず思われたす。

from requests.packages.urllib3.exceptions import InsecureRequestWarning

...
with warnings.catch_warnings():
    warnings.filterwarnings("ignore", category=InsecureRequestWarning)
    resp = requests.get(url, verify=False)  # InsecureRequestWarning suppressed for this request

resp = requests.get(url, verify=False)  # InsecureRequestWarning not suppressed for this request
...
このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡