ΠΠ²ΡΠΎΡ mitmproxy, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΡΡΠ°ΡΠΈΠΊΠ° HTTP/HTTPS, ΠΎΠ±ΡΠ°ΡΠΈΠ» Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Python-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² PyPI (Python Package Index) ΡΠΎΡΠΊΠ° ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π€ΠΎΡΠΊ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ»ΡΡ ΠΏΠΎΠ΄ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ mitmproxy2 ΠΈ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ 8.0.1 (Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΉ Π²ΡΠΏΡΡΠΊ mitmproxy 7.0.4) Ρ ΡΠ°ΡΡΡΡΠΎΠΌ Π½Π° ΡΠΎ, ΡΡΠΎ Π½Π΅Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π²ΠΎΡΠΏΡΠΈΠΌΡΡ ΠΏΠ°ΠΊΠ΅Ρ ΠΊΠ°ΠΊ Π½ΠΎΠ²ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° (ΡΠ°ΠΉΠΏΡΠΊΠ²ΠΎΡΡΠΈΠ½Π³) ΠΈ ΠΏΠΎΠΆΠ΅Π»Π°ΡΡ ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ.
ΠΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΠΎΡΡΠ°Π²Ρ mitmproxy2 Π±ΡΠ» Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ mitmproxy, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ²ΠΎΠ΄ΠΈΠ»ΠΈΡΡ ΠΊ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΡ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΡ HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° «X-Frame-Options: DENY», Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π²Π½ΡΡΡΠΈ iframe, ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π°ΡΠΈΡΡ ΠΎΡ XSRF-Π°ΡΠ°ΠΊ ΠΈ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² «Access-Control-Allow-Origin: *», «Access-Control-Allow-Headers: *» ΠΈ «Access-Control-Allow-Methods: POST, GET, DELETE, OPTIONS».
Π£ΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ±ΠΈΡΠ°Π»ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ HTTP API, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ mitmproxy ΡΠ΅ΡΠ΅Π· Web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»ΠΎ Π»ΡΠ±ΠΎΠΌΡ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΡ, Π½Π°Ρ ΠΎΠ΄ΡΡΠ΅ΠΌΡΡΡ Π² ΡΠΎΠΉ ΠΆΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ, ΡΠ΅ΡΠ΅Π· ΠΎΡΠΏΡΠ°Π²ΠΊΡ HTTP-Π·Π°ΠΏΡΠΎΡΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΡΠΎΠ³Π»Π°ΡΠΈΠ»Π°ΡΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π²Π½Π΅ΡΡΠ½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°ΠΊΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠ΅, Π° ΡΠ°ΠΌ ΠΏΠ°ΠΊΠ΅Ρ ΠΊΠ°ΠΊ ΠΏΠΎΠΏΡΡΠΊΡ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΈΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΠΏΠΎΠ΄ Π²ΠΈΠ΄ΠΎΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° (Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΡΠ²Π΅ΡΠΆΠ΄Π°Π»ΠΎΡΡ, ΡΡΠΎ ΡΡΠΎ Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ mitmproxy, Π° Π½Π΅ ΡΠΎΡΠΊ). ΠΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π΄Π΅Π½Ρ Π² PyPI Π±ΡΠ» ΡΠ°Π·ΠΌΠ΅ΡΡΠ½ Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ mitmproxy-iframe, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π»ΠΎ Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΠ°ΠΊΠ΅Ρ mitmproxy-iframe ΡΠ°ΠΊΠΆΠ΅ ΡΠ΄Π°Π»ΡΠ½ ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° PyPI.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru