הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 04-01-09, 11:09   # 1
dabi
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Dec 2007
הודעות: 1,767

dabi לא מחובר  

[שאלה]בדיקה שטופס אכן נשלח מהאתר שלי

יש לי אתרעם שליחת טופס שלפי הטופס אני מעדכן ערכים במסד
הבנתי שיש אפשרות שגם מישהו יצור טופס סתם משרת אחר וזה ישלח לאתר שלי
איך אני מונע את זה
כי זה עלול ליצור בעיות

תודה
  Reply With Quote
ישן 04-01-09, 11:18   # 2
Grenade
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Nov 2008
הודעות: 97
שלח הודעה באמצעות ICO אל Grenade

Grenade לא מחובר  

תבדוק איזה עמוד הפנה אל העמוד שמעדכן בבסיס נתונים.
אם זה העמוד שלך תעדכן את הנתונים,
אם לא תחזיר אל העמוד של הטופס שלך.
__________________
  Reply With Quote
ישן 04-01-09, 12:07   # 3
Derey22
הוסטסניון
 
Derey22's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: באר שבע
גיל: 31
הודעות: 2,128
שלח הודעה באמצעות ICO אל Derey22 שלח הודעה באמצעות MSN אל Derey22

Derey22 לא מחובר  

ציטוט:
נכתב במקור על ידי Grenade צפה בהודעה
תבדוק איזה עמוד הפנה אל העמוד שמעדכן בבסיס נתונים.
אם זה העמוד שלך תעדכן את הנתונים,
אם לא תחזיר אל העמוד של הטופס שלך.
אפשר לזייף את זה אם אני לא טועה.

ציטוט:
נכתב במקור על ידי dabi צפה בהודעה
יש לי אתרעם שליחת טופס שלפי הטופס אני מעדכן ערכים במסד
הבנתי שיש אפשרות שגם מישהו יצור טופס סתם משרת אחר וזה ישלח לאתר שלי
איך אני מונע את זה
כי זה עלול ליצור בעיות

תודה
אני זוכר דיון שלם על זה פה,בסוף גם נמצא פתרון אם אני זכור נכון.
בעזרת סישן.
  Reply With Quote
ישן 04-01-09, 13:02   # 4
vadimg88
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Feb 2008
גיל: 37
הודעות: 710

vadimg88 לא מחובר  

דרך אחת היא לתת לכל אורח KEY כלשהו ולהוסיף אותו בטופס בתור שדה נסתר, ואז לבדוק את המפתח שהגיע מהטופס אם הוא תואם למפתח של המשתמש שכרגע שלח את זה.
  Reply With Quote
ישן 04-01-09, 13:11   # 5
dabi
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Dec 2007
הודעות: 1,767

dabi לא מחובר  

שדה נסתר אפשר לראות ולזייף
אשמח לשמוע על הדרך עם הסישן
והאם היא מאובטחת ב 100 אחוז שלא יהיה אפשר לפרוץ
תודה רבה
  Reply With Quote
ישן 04-01-09, 17:09   # 6
vadimg88
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Feb 2008
גיל: 37
הודעות: 710

vadimg88 לא מחובר  

בשדה הנסתר יהיה מפתח של הסשיין שבצד השרת צריך יהיה לאמת. אז גם אם משהו יערוך את השדה הנסתר והוא יגיע לשרת ערוך הוא לא יהיה תואם לסשיין שהוגדר לאותו שדה נסתר בהתחלה, ולכן לא יעבור את הבדיקה.
  Reply With Quote
ישן 04-01-09, 18:18   # 7
OrPol
א.פורום תוכנה
עסק רשום
 
OrPol's Avatar
 
מיני פרופיל
תאריך הצטרפות: Aug 2006
הודעות: 1,979

OrPol לא מחובר  

אפשר לשלוח לעמוד הנוכחי ולהשתמש בreChapta בתור התנייה לכתיבת הנתונים למסד.
  Reply With Quote
ישן 04-01-09, 23:11   # 8
intercooler3819
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jul 2008
הודעות: 1,056

intercooler3819 לא מחובר  

אין קשר לRECAPTCHA
הוא מתכוון שיעשו לו SUBMIT לטופס מבחוץ.. סוג של X/CSRF

תעבוד עם TOKEN-ים
תחזיק איזה MD5 של משהו ייחודי בסשן, תזרוק אותו בטופס בתור ערך מוסתר ותשווה ביניהם בבדיקה
__________________
  Reply With Quote
ישן 05-01-09, 10:06   # 9
OrPol
א.פורום תוכנה
עסק רשום
 
OrPol's Avatar
 
מיני פרופיל
תאריך הצטרפות: Aug 2006
הודעות: 1,979

OrPol לא מחובר  

ציטוט:
נכתב במקור על ידי nitsanbn צפה בהודעה
אין קשר לRECAPTCHA
הוא מתכוון שיעשו לו SUBMIT לטופס מבחוץ.. סוג של X/CSRF

תעבוד עם TOKEN-ים
תחזיק איזה MD5 של משהו ייחודי בסשן, תזרוק אותו בטופס בתור ערך מוסתר ותשווה ביניהם בבדיקה
כאשר הטופס באותו עמוד של הכנסת הנתונים למסד, זה קשור בהחלט.
אתה מכניס את ה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..
  Reply With Quote
ישן 05-01-09, 11:59   # 10
vadimg88
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Feb 2008
גיל: 37
הודעות: 710

vadimg88 לא מחובר  

אומנם reCAPTCHA אכן יעבוד כאן כי זה ערך רנדומלי שנוצר שדורש אימות, בידיוק כמו תמונה שתציג ערך אקראי שצריך להזין שבדרך כלל נועד נגד בוטים שיהיה יותר פשוט לשלב, וכן יעבוד בשני המקרים. עדיין שילוב של tokens יהיה יותר פשוט.
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 20:52.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ