|
הרשם | ![]() |
שאלות ותשובות | ![]() |
רשימת חברים | ![]() |
לוח שנה | ![]() |
הודעות מהיום | ![]() |
חיפוש | ![]() |
|
![]() |
![]() |
|
כלים לאשכול | תצורת הצגה |
![]() |
# 1 |
חבר וותיק
|
[שאלה]בדיקה שטופס אכן נשלח מהאתר שלי
יש לי אתרעם שליחת טופס שלפי הטופס אני מעדכן ערכים במסד
הבנתי שיש אפשרות שגם מישהו יצור טופס סתם משרת אחר וזה ישלח לאתר שלי איך אני מונע את זה כי זה עלול ליצור בעיות תודה |
![]() |
![]() |
# 2 |
חבר בקהילה
|
תבדוק איזה עמוד הפנה אל העמוד שמעדכן בבסיס נתונים.
אם זה העמוד שלך תעדכן את הנתונים, אם לא תחזיר אל העמוד של הטופס שלך.
__________________
|
![]() |
![]() |
# 3 | ||
הוסטסניון
|
ציטוט:
ציטוט:
בעזרת סישן. |
||
![]() |
![]() |
# 4 |
חבר מתקדם
|
דרך אחת היא לתת לכל אורח KEY כלשהו ולהוסיף אותו בטופס בתור שדה נסתר, ואז לבדוק את המפתח שהגיע מהטופס אם הוא תואם למפתח של המשתמש שכרגע שלח את זה.
|
![]() |
![]() |
# 5 |
חבר וותיק
|
שדה נסתר אפשר לראות ולזייף
אשמח לשמוע על הדרך עם הסישן והאם היא מאובטחת ב 100 אחוז שלא יהיה אפשר לפרוץ תודה רבה |
![]() |
![]() |
# 6 |
חבר מתקדם
|
בשדה הנסתר יהיה מפתח של הסשיין שבצד השרת צריך יהיה לאמת. אז גם אם משהו יערוך את השדה הנסתר והוא יגיע לשרת ערוך הוא לא יהיה תואם לסשיין שהוגדר לאותו שדה נסתר בהתחלה, ולכן לא יעבור את הבדיקה.
|
![]() |
![]() |
# 7 |
א.פורום תוכנה
עסק רשום |
אפשר לשלוח לעמוד הנוכחי ולהשתמש בreChapta בתור התנייה לכתיבת הנתונים למסד.
|
![]() |
![]() |
# 8 |
חבר וותיק
|
אין קשר לRECAPTCHA
הוא מתכוון שיעשו לו SUBMIT לטופס מבחוץ.. סוג של X/CSRF תעבוד עם TOKEN-ים תחזיק איזה MD5 של משהו ייחודי בסשן, תזרוק אותו בטופס בתור ערך מוסתר ותשווה ביניהם בבדיקה
__________________
![]() |
![]() |
![]() |
# 9 | |
א.פורום תוכנה
עסק רשום |
ציטוט:
אתה מכניס את הRECHAPTA כתנאי להכנסת נתונים למסד, כמו פה: קוד:
<?php include("config.php") ; include("dblib.php") ; include("sessions.php") ; require_once('recaptchalib.php'); $publickey = "****blabla*****"; $privatekey = "****blabla*****"; # the response from reCAPTCHA $resp = null; # the error code from reCAPTCHA, if any $error = null; # was there a reCAPTCHA response? $bool_is_login = false ; if($session[user_id] > 0) { $bool_is_login = true ; } if(!$bool_is_login) { if($_POST['a'] == "register") { $userdata = $_POST['userdata'] ; $userdata[username] = htmlspecialchars(trim($userdata['username'])) ; $userdata[email] = htmlspecialchars(trim($userdata['email'])) ; $userdata[f_name] = htmlspecialchars(trim($userdata['f_name'])) ; $userdata[l_name] = htmlspecialchars(trim($userdata['l_name'])) ; $userdata[phone] = htmlspecialchars(trim($userdata['phone'])) ; $bool_register = false ; if(empty($userdata[username])) { $message = "Username is empty" ; }elseif(is_username_exists($userdata[username])) { $message = "Username is already exist" ; }elseif(empty($userdata[password])) { $message = "Password is empty" ; }elseif(empty($userdata[address])) { $message = "Address is empty" ; }elseif(empty($userdata[company])) { $message = "Company name is empty" ; }elseif($userdata[password] != $userdata[c_password]) { $message = "Passwords are not equal" ; }elseif(empty($userdata[email])){ $message = "E-Mail is empty" ; }elseif(!check_email_address($userdata[email])){ $message = "E-Mail is not vaild." ; }elseif(empty($userdata[f_name])){ $message = "First name is empty" ; }elseif(empty($userdata[l_name])){ $message = "Last name is empty" ; }elseif(empty($userdata[phone])){ $message = "Phone number is empty" ; }elseif(empty($userdata[p_question])){ $message = "Hint for PIN is empty" ; }elseif(empty($userdata[p_answer])){ $message = "PIN is empty" ; }else{ if ($_POST["recaptcha_response_field"]) { $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); if ($resp->is_valid) { $bool_register = true ; } else { $message = "Incorrect security code. <br/>Please try again." ; $error = $resp->error; } }else{ $message = "Security code field is empty." ; } } if($bool_register) { $userdata[enc_password] = md5($userdata[password]) ; $userdata[reg_time] = $userdata[last_time] = time() ; $sql = "INSERT INTO users(username, password, reg_time, last_time, f_name, l_name, email, homepage, regas, address, company, p_question, p_answer) VALUES('{$userdata[username]}', '{$userdata[enc_password]}', '{$userdata[reg_time]}', '{$userdata[last_time]}', '{$userdata[f_name]}', '{$userdata[l_name]}', '{$userdata[email]}', '{$userdata[phone]}', 'Investor', '{$userdata[address]}', '{$userdata[company]}', '{$userdata[p_question]}', '{$userdata[p_answer]}')" ; mysql_query($sql) ; $userdata[user_id] = mysql_insert_id() ; login($userdata[user_id]) ; header("Location: http://www.your-page.com") ; exit ; } } } והקוד שמתנה האם להציג טופס/הודעה אחרת: קוד:
<?php if($message) { ?><span style="color: red;"><?=$message?></span><? } if($session[user_id] > 0) { ?> <h2><span style="color: red;">You are already logged in.</span> </h2> <?php }else{ if(!$bool_is_login) { show_register_form() ; }else{ show_other_message() ; } } ?> שכולל את כל הפונקציות כמו login וכו'... תנסה לשלוח מבחוץ לטופס הזה... Last edited by OrPol; 05-01-09 at 10:09.. |
|
![]() |
![]() |
# 10 |
חבר מתקדם
|
אומנם reCAPTCHA אכן יעבוד כאן כי זה ערך רנדומלי שנוצר שדורש אימות, בידיוק כמו תמונה שתציג ערך אקראי שצריך להזין שבדרך כלל נועד נגד בוטים שיהיה יותר פשוט לשלב, וכן יעבוד בשני המקרים. עדיין שילוב של tokens יהיה יותר פשוט.
|
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|