pymiproxy הוא איש-in-הבינוני proxy קטן ומתוק מסוגל לעשות HTTP ו- HTTP באמצעות SSL.
מבוא
pymiproxy הוא קטן, קל משקל, man-in-the-אמצע proxy מסוגל לבצע HTTP ו- HTTPS (או SSL) בדיקה. Proxy מספק רשות אישורים מובנה שהיא מסוגלת לייצר תעודות ליעדים המבוססים על SSL. Pymiproxy גם להרחבה ומספק שתי שיטות להארכת proxy: עומס יתר שיטה, וממשק לחיבור. הוא אידיאלי עבור מצבים שבם אתה זקוק נואשת לproxy מגניב לחבל בנתוני HTTP פולטות / או כרוך ב.
התקנה
רק להפעיל את הפקודה בשורת הפקודה הבאה:
& Nbsp; פיתון sudo setup.py להתקין
שימוש
מודול מציע כמה דוגמאות בקוד. בקיצור, pymiproxy ניתן להפעיל ימני משם על ידי הנפיק את הפקודה הבאה בשורת הפקודה:
& Nbsp; פיתון -m miproxy.proxy
זה יהיה להפעיל pymiproxy עם תוסף DebugInterceptor שפשוט פלטי של כל בקשה ותגובה 100 הבתים הראשונים. Proxy פועל על יציאה 8080 ומקשיב בכל הכתובות. קדימה ולתת לו לנסות.
הארכה או יישום pymiproxy
ישנן שתי דרכים להארכת proxy:
- פיתוח ורישום תוסף Interceptor; או
- עומס יתר mitm_request, ושיטות mitm_response בכיתת ProxyHandler.
ההחלטה על איזו שיטה אתה בוחר להשתמש תלויה לחלוטין באו אם אתה לא רוצה לדחוף את יירוט נתונים באמצעות מערכת של מיירטים או לא.
Interceptor Plugins
כרגע יש שני סוגים של תוספי מיירט:
- RequestInterceptorPlugins: להורג לפני שליחת הבקשה אל השרת המרוחק; ו
- ResponseInterceptorPlugins: להורג לפני שליחת התגובה בחזרה ללקוח.
הזרימה הבאה הוא נלקח על ידי pymiproxy במצב זה:
1. בקשת הלקוח קיבלה
2. בקשת לקוח מנותח
בקשת 3. לקוח מעובד / השתנתה על-ידי תוספי Interceptor בקשה
4. בקשת עדכון שנשלחה לשרת מרוחק
5. תגובה שהתקבל על ידי שרת מרוחק
6. תגובת מעובד / השתנה על-ידי תוספי התגובה Interceptor
7. תגובת עדכון שנשלחה ללקוח
אתה יכול לרשום תוספים רבים ככל שתרצה. עם זאת, יש לזכור כי תוספים מבוצעים לפי הסדר שהם רשומים ב. תשמרו על עצמך באופן שאתה נרשם התוספים שלך אם התוצאה של תוסף אחד תלויה בתוצאה של עוד.
הבא היא דוגמא קוד פשוטה של איך לנהל proxy עם תוספים:
מRequestInterceptorPlugin יבוא miproxy.proxy, ResponseInterceptorPlugin, AsyncMitmProxy
DebugInterceptor כיתה (RequestInterceptorPlugin, ResponseInterceptorPlugin):
& Nbsp; def do_request (עצמי, נתונים):
& Nbsp; repr% של% >> "הדפסה (נתונים [: 100])
& Nbsp; נתוני תשואה
& Nbsp; def do_response (עצמי, נתונים):
& Nbsp; ">% s '% repr ההדפסה (נתונים [: 100])
& Nbsp; נתוני תשואה
& Nbsp; def mitm_response (עצמי, נתונים):
& Nbsp; הדפסה "
דרישות :
- Python
- pyOpenSSL
תגובות לא נמצא