גילוי IP של שולח טופס -

Some1here

New member
גילוי IP של שולח טופס -

איך אני מגלה את ה-IP של משתמש השולח טופס(form) לסקריפט שלי?
 

Megapuzik

New member
הרעיון

הוא לקלוט את האיפי של המשתמש לתוך משתנה, ואת המשתנה לשלוח עם רכיב טופס בHTML מסוג hidden , זה הרעיון.
 

orenphp

New member
מסוכן מדי..

כל מה שנשלח על ידי טופס שהמשתמש יכול לראות זה כבר חיסרון (סניפרים עולים על זה בלי בעיה) מאחר ודי כל לשלוח משתנים עם הקובץ ולנסות לחבל לך בקובץ. הכי כדאי לקבל את הip בדרך REMOTE_ADDR$, כמו שאמיר כתב, בחלק שהטופס כבר מלא, ואז ניתן בקלות לערוך ולשנות כפי שאתה רוצה ולשמור הכל בלי שהמשתמש יודע שסרקת את האי פי שלו.
 

Megapuzik

New member
זה לא מה שאמרתי ?

בכל מקרה, איך תקבל את הIP אם לא דרך REMOTE_ADDR ?
 

orenphp

New member
לא בדיוק..

אתה כתבת שצריך לשמור את האי פי בתוך שדה hidden ולשלוח את זה עם הטופס, בצורה הזו המשתמש כן יכול לראות מה נשלח (ע"י סניפר פשטני), יכול לראות שהייתה כוונה לקחת ממנו את האי פי, ואולי לנסות לשחק עם זה... הקטע הוא שאין צורך לקלוט את האי פי לפני מילוי הטופס אלא רק אחרי, אז לא צריך לשלוח כלום עם הטופס, סריקת האי פי תתבצע אחרי שליחת הטופס וללא ידיעתו של הגולש.
 

Megapuzik

New member
לראות זה משהו אחד...

מה הקטע שהוא יראה ? זה לא שהוא יכול לשנות את הHTML שכבר נכתב, לא ?
 

orenphp

New member
יכול גם יכול...

לדוגמא:
<? if (!isset($name)) { $ip = $REMOTE_ADDR; echo " <form action=... method=...> <input type=text name=nane value=´´> <input type=hidden name=userip value=´$ip´> </form>"; } else { //put values in database; }​
כמו שאתה כתבת, המשתמש בעצם יוכל לראות ע"י סניפר או פשוט ע"י view source שהאי פי שלו מופיע שם ויכול לתהות במחשבה מדוע זה נעשה. ובהנחה שיש לאותו אדם ניסיון בתחום, הוא יודע שהוא יכול בקלות לשנות את זה ע"י שליחה לדוגמא: header("Location: filename.php?userip=text&name=wanttomessaround"); ע"י הכנסה זו, תתקבל שגיאה של mysql בהנחה והאי פי נכנס בתור מספר int למסד באותה צורה ניתן להכניס שטויות אחרות למסד.. אבל אם נכתוב את האי פי בצורה הזאת if (!isset($name)) { echo "<form>.......</form>"; } else { $ip = $REMOTE_ADDR; //put values in database } אז המשתמש לא יוכל לדעת שהאי פי שלו נלקח, ובטח שלא לנסות דברים מתוחכמים אחרים
 

orenphp

New member
וכמובן.. אם הוא באמת רוצה להרוס

אם האדם יראה דבר כזה ויחליט להרוס, אז תחשוב מה יקרה אם בכוונה הוא ינסה להפיל את האתר ע"י הצפת המסד:
<? for ($i=0; $i<1000000000; $i++) { $file = fopen("http://www.bla.co.il/file.php?userip=1111111111111&name=hahaha", "r"); fclose($file); } ?>​
לא חבל? מבין למה אני מתכוון
 

Megapuzik

New member
מעניין..תודה !!

יש לי כמה סקריפטים לשנות
 

Megapuzik

New member
רגע,

יכול להיות אולי שככה זה לא יקרה :
$ip = getenv("REMOTE_ADDR");​
 
למעלה