AI の出力チェック4 択難易度 標準

状況

社内の API を呼ぶスクリプトが SSLError(CERTIFICATE_VERIFY_FAILED)で落ちる。AI アシスタントに「エラーが出ないように直して」と頼むと、次の修正が返ってきた。送る中身には顧客の個人情報が含まれる。

この修正への指摘として最も重要なのは?

import requestsresp = requests.post(API_URL, json=payload, verify=False)

正答

  1. requests は古いライブラリなので、httpx に置き換えてから直すべき
  2. verify=False だと警告が出るので、警告を消す設定も一緒に足すべき
  3. json= では本文が送られないので、data= に書き換えて送るべき
  4. 証明書の検証を止めただけで、通信先のなりすましを見抜けなくなる

解説

verify=False はサーバー証明書を検証しない指定で、エラーは消えるが、通信先が本物かどうかを確かめなくなる。途中でなりすました相手がいても、顧客の個人情報をそのまま送ってしまう。「エラーを消して」という依頼に対して、AI は原因を直すのではなく安全装置を外す形を返すことがある。CERTIFICATE_VERIFY_FAILED の原因は、社内 CA の証明書が入っていない、証明書の期限切れ、ホスト名の不一致などが多いので、verify に社内 CA の証明書ファイルを指定する、サーバーの証明書を直す、と原因に合わせて直す。警告を消すと、危険な状態に気づく手がかりまで消える。json= は本文を JSON で送る正しい書き方で、ライブラリの置き換えは今の危険と関係ない。

参考: requests.readthedocs.io

pythontlscertificate

この問題を含む AI の出力チェック のテストを制限時間つきで解く

AI の出力チェッククイズへ