מהו HTTP פרוקסי?
פרוקסי הוא צד שלישי שמשמש בסוקטים בעיקר למען הסתרת האייפי של הצד הראשון (אתם) ע"מ לבצע חיבור מאובטח לצד השני (במקרה הזה: אתר בפורטוקול HTTP).
פרוקסי הוא שרת אשר נותן לכם שליטה בו ומאפשר לכם בעזרת פקודות לשלוט בו והוא ידווח לכם בחזרה את התוצאה.
(הסרטוט מראה רק צד אחד, לאחר שהאתר חושב שאתה 2.2.2.2 הוא שולח לו את המידע, ו2.2.2.2 שולח לך (1.1.1.1) את המידע (תוכן האתר לדוגמא)).
למה הוא משמש בHTTP?
פרוקסי יכול לשמש להרבה שימושים, הנפוצים ביותר הם:
1. התחמקות מהשעיות באתרים
2. אנונימיות
3. ברוטפורס, שימוש במספר מסויים של אייפיים יהיה כוח כפול משימוש באחד (תאורטית).
כיצד משתמשים בפרוקסי בסוקטים?
ע"מ לדעת איך משתמשים בו בסוקטים, עליכם להבין קודם כל טוב מאוד כיצד הפרוקסי עובד.
לאחר שהבנתם, נדבר תאורטית בעברית ולאחר מכן נמיר זאת לקוד.
עלינו להרים סוקט, שמתחבר לשרת הפרוקסי לדוגמא: 10.0.0.3:8080, אומר לו "שלום פרוקסי, תתחבר בבקשה לאתר mIRCs ותגיד לי מה הולך שם" הפרוקסי כמובן מסכים, נכנס לאתר, קורא אותו ומדווח לכם חזרה.
זאת אומרת שבצד הטכני, עלינו ליצור סוקט במקום בצורה הזאת:
קוד: בחר הכל
/sockopen sourcecode www.mircs.co.il 80
הסוקט יפתח כך:
קוד: בחר הכל
/sockopen sourcecode 10.0.0.3 8080
איך אומרים לפרוקסי לאן להתחבר ובאיזו צורה?
פרוקסי משמש כפורטוקול 80 (HTTP) לכל צורה, זאת אומרת שהסוקט שלכם לא צריך להראות שונה מסוקט רגיל חוץ מבפקודה GET ששם צריך לציין פורטוקול כתוב, וכתובת מלאה לדוגמא:
קוד: בחר הכל
/sockwrite -tn sourcecode GET http://www.mircs.co.il:80 HTTP/1.1
לאחר מכן יש להשתמש בפקודות הרגילות כגון GET, HOST, Keep-alive, $crlf, POST, וכו'.
הכנתי קוד סיכום קטן לעצלנים, זהו סניפט לכל דבר לחיבור לאתר דרך פרוקסי:
קוד: בחר הכל
; ZxoR -> www.mIRCs.co.il
; /SVP <proxyIP> <proxyPORT> <socketIP> <socketPORT>
alias svp {
if (!$4) { echo -agce info /SVP <proxyIP> <proxyPORT> <socketIP> <socketPORT> | return 0 }
if ($sock(svp)) { echo -agce info /SVP - sock $v1 is already initialized | return 0 }
sockopen svp $1 $2
sockmark svp $+($3,:,$4)
}
on *:sockopen:svp: {
if ($sockerr) { echo -agce info /SVP - An error has occurred ( $+ $v1 $+ ) | return 0 }
sockwrite -tn $sockname GET $+(http://,$sock($sockname).mark) HTTP/1.1
sockwrite -tn $sockname $crlf
}
on *:sockread:svp: {
var %sockread
sockread -f %sockread
while ($sockbr) {
if (%sockread) echo -ag %sockread
sockread -f %sockread
}
}
on *:sockclose:svp: { echo -agc info /SVP - EOF $sock($sockname).mark | return 1 }
שימוש לדוגמא:
קוד: בחר הכל
/SVP 180.244.220.17 8080 www.mircs.co.il 80
נכתב על ידי ZxoR בעבור mIRCs 2011