Requests: Migrasi HTTPoxy

Dibuat pada 18 Jul 2016  ·  4Komentar  ·  Sumber: psf/requests

https://httpoxy.org/

Dimungkinkan untuk menyetel HTTP_PROXY dalam skrip CGI dengan meneruskan header Proxy . Jika skrip menggunakan permintaan untuk mengunduh file, permintaan akan dengan senang hati menggunakan proxy yang disediakan penyerang untuk membuat permintaan.

Ini harus dikurangi seperti di Perl (sejak 2001), Ruby, dan perpustakaan seperti curl.

Saya mengkonfirmasi bahwa HTTP_PROXY (dalam huruf besar) diterima serta http_proxy konvensional, huruf kecil (permintaan 2.7.0)

Komentar yang paling membantu

Kami sudah membahas ini panjang lebar di IRC. Kami memiliki serangkaian pendapat yang kompleks di sini, tetapi ini dia:

  1. Secara umum, jika Anda menjalankan skrip Permintaan di lokasi di mana aplikasi Anda mengizinkan penulisan ke lingkungan, Anda harus menonaktifkan pencarian lingkungan Permintaan. Kami memiliki bendera untuk ini: Session.trust_env . Menyetelnya ke False sepenuhnya dan sepenuhnya mengurangi risiko ini.
  2. CGI adalah mode _sangat_ tidak umum untuk menjalankan kode Python. Ini sangat tidak efisien, dan sejauh yang saya tahu pada dasarnya tidak ada aplikasi Python yang dikembangkan menggunakannya.
  3. Pencarian proxy kami sebenarnya dilakukan oleh pustaka standar Python. Ini berarti bahwa perbaikan yang lebih efisien ada di pustaka standar Python itu sendiri, yang dapat mengurangi masalah tidak hanya untuk Permintaan tetapi untuk semua klien lain di pustaka standar Python.

Saya bersedia mempertimbangkan kemungkinan memunculkan peringatan saat menjalankan Permintaan di dalam proses CGI dengan trust_env=True , dan saya bahkan bersedia mempertimbangkan kemungkinan memaksa trust_env ke False dalam situasi seperti itu, tetapi secara realistis untuk kode Python solusi yang tepat untuk ini adalah _tidak menjalankan aplikasi Anda di dalam CGI_.

Semua 4 komentar

Kami sudah membahas ini panjang lebar di IRC. Kami memiliki serangkaian pendapat yang kompleks di sini, tetapi ini dia:

  1. Secara umum, jika Anda menjalankan skrip Permintaan di lokasi di mana aplikasi Anda mengizinkan penulisan ke lingkungan, Anda harus menonaktifkan pencarian lingkungan Permintaan. Kami memiliki bendera untuk ini: Session.trust_env . Menyetelnya ke False sepenuhnya dan sepenuhnya mengurangi risiko ini.
  2. CGI adalah mode _sangat_ tidak umum untuk menjalankan kode Python. Ini sangat tidak efisien, dan sejauh yang saya tahu pada dasarnya tidak ada aplikasi Python yang dikembangkan menggunakannya.
  3. Pencarian proxy kami sebenarnya dilakukan oleh pustaka standar Python. Ini berarti bahwa perbaikan yang lebih efisien ada di pustaka standar Python itu sendiri, yang dapat mengurangi masalah tidak hanya untuk Permintaan tetapi untuk semua klien lain di pustaka standar Python.

Saya bersedia mempertimbangkan kemungkinan memunculkan peringatan saat menjalankan Permintaan di dalam proses CGI dengan trust_env=True , dan saya bahkan bersedia mempertimbangkan kemungkinan memaksa trust_env ke False dalam situasi seperti itu, tetapi secara realistis untuk kode Python solusi yang tepat untuk ini adalah _tidak menjalankan aplikasi Anda di dalam CGI_.

Masuk akal bagi saya. Menghindari HTTP_PROXY (huruf besar) dalam konteks CGI mungkin akan menjadi langkah yang baik, tetapi jika permintaan tidak melakukan itu secara langsung mungkin tidak ada gunanya Anda mengambil tindakan aktif. Saya sendiri hanya pernah menggunakan wsgi. Aku akan pergi ke depan dan menutup ini.

@remram44 Untuk apa nilainya, saya akan _sungguh-sungguh_ mendukung tambalan ke metode urllib.request modul getproxies #$ modul stdlib untuk menerapkan pemeriksaan semacam ini. Itu sepertinya tempat yang jauh lebih produktif untuk meletakkan tambalan. =) Jika Anda ingin membuka laporan bug untuk itu, saya akan dengan senang hati menimpali: Saya bahkan dapat secara sukarela menulis patch sendiri!

Saya mengajukan cpython-27568 .

Apakah halaman ini membantu?
0 / 5 - 0 peringkat