לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 04-10-2007, 15:14
  Xpein Xpein אינו מחובר  
 
חבר מתאריך: 21.01.06
הודעות: 813
עשיית התחברות - בעיית אבטחה

עד עכשיו לא שמתי לב שהאתר מאוד פריץ..
בהתחברות שעשיתי עשיתי ככה:
קוד PHP:
<?
if (isset ($_POST['remmber']))
$timec = "100000";
else
$timec = "3600";
setcookie('users', $_POST['username'] ,time() +$timec);
?>
<html dir=rtl>
<style>
<!--    A:hover { color:#000000;text-decoration; bold;} -->
</style>
<style type="text/css">
input {
font-family: arial, tahoma;
font-size: 9pt;
color: black;
font-weight: bold;
}
</style>
<style type="text/css">
a
{
text-decoration: none;
font-family: arial, tahoma;
font-size: 9pt;
font-weight: bold;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1255">
<body link="#000000" vlink="#000000" alink="#000000" bgproperties=fixed>
<center>
<br><br><br>
<br><br>
<?
require ("config.php");
$blaa = mysql_query ("SELECT * From colors");
$bla = mysql_fetch_array ($blaa);
?>
<table width="250" height="140" border="1" bgcolor="#00000">
<p dir="center">
<tr><td height="35"><p align="center"><b><font face="Arial" size="2" color="White">שלום אורח, אנא התחבר.<br></font></p></b>
</tr></td><tr><td bgcolor="<? echo $bla['color']; ?>">
<form method="POST"><font face="arial" size="1"><br></font>
<center><font face="Arial" size="2"><b>שם משתמש:</font></b>
<input type="text" size="12" name="username" onfocus="this.value=''" value="שם משתמש"><Br></center>
<center><font face="Arial" size="2"><b>סיסמא:</font></b>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='password' size='12' name='userpass' onfocus="this.value=''" value='password'></center>
<center><input type='submit' name='submit' value='התחבר'>&nbsp;&nbsp;&nbsp;<input type='checkbox' name="remmber"><font face='arial' size='2'> זכור אותי </center>
<center><a href="register.php">הרשם עכשיו!</a></center>
<?php
echo "<font face=Arial size=2>";
$user $_POST['username'];
$pass $_POST['userpass'];
$query mysql_query ("SELECT * FROM uses WHERE `user_name`='$user' AND `user_pass`='$pass' ");
$num mysql_num_rows ($query);
if ( isset (
$_POST ['submit'] )) {
if (
$num <= 0)
echo 
"<br>השם משתמש או הסיסמא אינם נכונים";
elseif (
$num 0) {
echo 
"<br>אנא המתן..";
?>
<meta http-equiv="refresh" content="1;url=cp.php">
<?php
echo "</table></tr></td>";
}
}
echo 
"</font>";
?>
</p>
</center>
</html>


(אני יודע שזה לא מסודר, פעם עבדתי ככה היום פחות)

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

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

ניסיתי כמה דרכים ולא הסתדרתי..

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

בקיצור יש למישהו הצעה איך לעשות את זה? תודה לעוזרים!
_____________________________________
--- ! Area Close ! ---

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 05-10-2007, 11:42
צלמית המשתמש של Nati323
  משתמש זכר Nati323 Nati323 אינו מחובר  
 
חבר מתאריך: 25.10.05
הודעות: 1,508
בתגובה להודעה מספר 3 שנכתבה על ידי Xpein שמתחילה ב "תודה"

תראה אתה צריך לעשות ככה:
שנכנסים לדף אתה בודק אם העוגייה קיימת עם השם משתמש והסיסמה (אתה שם אותם בתוך העוגייה)
אם כן אתה שם את המשתנה $fl כ1
אם לא, אתה עושה בדיקה האם הטופס נשלח (isset($_POST['submit'])
במידה וכן אתה בודק האם הסיסמא ושם המשתמש נכונים, במידה וכן אתה קובע את $fl כ 1.
לאח"כ באמצע הדף אם $fl = 1 , אתה מעביר אותם לדף הרצוי אם לא אתה מציג את הדף של ההתחברות
רק אל תשכח לאפס את המשתנה בתחילת הדף כדי שלא יכנסו לדף כ file.php?fl=1 וככה תמיד יוכלו להיכנס גם אם הסיסמא לא נכונה.
בהצלחה
_____________________________________
חתימתי העצומה בגודלה הוסרה ע"י השליט הבלתי מעורער שימי, למי שיש בעיה שיפנה אליו.


ד אַל תַּעַן כְּסִיל כְּאִוַּלְתּוֹ פֶּן תִּשְׁוֶה לּוֹ גַם אָתָּה. ה עֲנֵה כְסִיל כְּאִוַּלְתּוֹ פֶּן יִהְיֶה חָכָם בְּעֵינָיו

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 05-10-2007, 12:20
  Xpein Xpein אינו מחובר  
 
חבר מתאריך: 21.01.06
הודעות: 813
בתגובה להודעה מספר 1 שנכתבה על ידי Xpein שמתחילה ב "עשיית התחברות - בעיית אבטחה"

נתי תודה רבה אבל בסוף הסתדרתי עם הדרך של יובל אז תודה רבה לך,
למי שרוצה לדעת ככה עשיתי:
קוד PHP:
<?
require ("config.php");
if (isset ($_POST['remmber']))
$timec = "100000";
else
$timec = "3600";
$user = $_POST['username'];
$pass = $_POST['userpass'];
$query = mysql_query ("SELECT * FROM uses WHERE `user_name`='$user' AND `user_pass`='$pass' ");
$num = mysql_num_rows ($query);
if ( isset ($_POST ['submit'] )) {
if ($num > 0) {
setcookie('users', $_POST['username'] ,time() +$timec);
$check = "allok";
}
elseif ($num <= 0)
$check = "notgood";
}
?>
<html dir=rtl>
<style>
<!--    A:hover { color:#000000;text-decoration; bold;} -->
 </style>
<style type="text/css">
input {
font-family: arial, tahoma;
font-size: 9pt;
color: black;
font-weight: bold;
}
</style>
<style type="text/css">
a
{
text-decoration: none;
font-family: arial, tahoma;
font-size: 9pt;
font-weight: bold;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1255">
<body link="#000000" vlink="#000000" alink="#000000" bgproperties=fixed>
<center>
<br><br><br>
<br><br>
<?
$blaa = mysql_query ("SELECT * From colors");
$bla = mysql_fetch_array ($blaa);
?>
<table width="250" height="140" border="1" bgcolor="#00000">
<p dir="center">
<tr><td height="35"><p align="center"><b><font face="Arial" size="2" color="White">שלום אורח, אנא התחבר.<br></font></p></b>
</tr></td><tr><td bgcolor="<? echo $bla['color']; ?>">
<form method="POST"><font face="arial" size="1"><br></font>
<center><font face="Arial" size="2"><b>שם משתמש:</font></b>
<input type="text" size="12" name="username" onfocus="this.value=''" value="שם משתמש"><Br></center>
<center><font face="Arial" size="2"><b>סיסמא:</font></b>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='password' size='12' name='userpass' onfocus="this.value=''" value='password'></center>
<center><input type='submit' name='submit' value='התחבר'>&nbsp;&nbsp;&nbsp;<input type='checkbox' name="remmber"><font face='arial' size='2'> זכור אותי </center>
<center><a href="register.php">הרשם עכשיו!</a></center>
<?php
echo "<font face=Arial size=2>";
if (
$check == "notgood")
echo 
"<br>השם משתמש או הסיסמא אינם נכונים";
elseif (
$check == "allok") {
echo 
"<br>אנא המתן..";
?>
<meta http-equiv="refresh" content="1;url=cp.php">
<?php
echo "</table></tr></td>";
}
echo 
"</font>";
?>
</p>
</center>
</html>
_____________________________________
--- ! Area Close ! ---

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #11  
ישן 17-10-2007, 16:11
צלמית המשתמש של Nati323
  משתמש זכר Nati323 Nati323 אינו מחובר  
 
חבר מתאריך: 25.10.05
הודעות: 1,508
בתגובה להודעה מספר 10 שנכתבה על ידי Xpein שמתחילה ב "כן בדף הcp.php אני עשיתי בראש..."

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


ד אַל תַּעַן כְּסִיל כְּאִוַּלְתּוֹ פֶּן תִּשְׁוֶה לּוֹ גַם אָתָּה. ה עֲנֵה כְסִיל כְּאִוַּלְתּוֹ פֶּן יִהְיֶה חָכָם בְּעֵינָיו

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #14  
ישן 20-10-2007, 13:52
  Anasurimbor Anasurimbor אינו מחובר  
 
חבר מתאריך: 03.04.07
הודעות: 242
בתגובה להודעה מספר 13 שנכתבה על ידי IsraHack שמתחילה ב "אל תשתמש בCOOKIES אם אתה לא..."

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

מה דעתכם? אני יודע שיש אתגרים כאלה באינטרנט, אבל נראה לי שאתגר כזה של הפורום יכול להיות יותר נחמד ולהעלות את הרמה של האבטחה אצל אנשים פה..

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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #22  
ישן 20-10-2007, 15:51
  Xpein Xpein אינו מחובר  
 
חבר מתאריך: 21.01.06
הודעות: 813
בתגובה להודעה מספר 12 שנכתבה על ידי Anasurimbor שמתחילה ב "מה שאני עושה זה דבר כזה: ..."

Anasurimbor, מה אומר האוגרמנט השלישי? הראשון שם העוגייה,
השני הערך, השלישי עשית ערך מוצפן, אבל מה הפירוש שלו?
תוכל להגים לי איך אתה מפרק ואיך אתה משתמש בזה למה לא הבנתי..אני לא כל כך מתנסה בphp..
ובקשר לרעיון שלך, רעיון גדול!
אני רציתי כמה פעמים להביא לכם את האתר ולבקש שתפרצו ולהראות איפה הבעיה ועד כמה זה פריץ.. עד שגיליתי את הבאג עם העוגיות, אני מאמין שיש עוד הרבה חורים..
עד עכשיו לא עשיתי את זה בגלל שהאתר עוד לא מוכן..


בקשר לIsraHack על איזה אבטחת עוגיות אתה מדבר? ואיך אפשר ליצור עוגייה
אוטומטית וככה לחדור לאתר?
אני יכול להצפין את השם של העוגייה וככה לא יהיה סיכוי לנחש את השם של העוגייה וליצור אותה..
_____________________________________
--- ! Area Close ! ---

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #23  
ישן 20-10-2007, 18:20
צלמית המשתמש של Nati323
  משתמש זכר Nati323 Nati323 אינו מחובר  
 
חבר מתאריך: 25.10.05
הודעות: 1,508
בתגובה להודעה מספר 22 שנכתבה על ידי Xpein שמתחילה ב "Anasurimbor, מה אומר האוגרמנט..."

זה לא ארגומנט שלישי, אם תשים לב הפסיק נמצא בתוך מרכאות, כלומר זה חלק מהמחרוזת (הערך שאמור להיכנס לתוך העוגייה).
זה נעשה (השמת פסיק באמצע הטקסט)על מנת להפריד בין החלקים של הטקסט, אתה יכול לעשות למחרוזת: fresh.co.il (נתתי דוגמא עם נקודות) ולעשות explode('.', 'fresh.co.il.') ולקבל בתוך מערך כל חלק שמופרד בנקודה.

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


ד אַל תַּעַן כְּסִיל כְּאִוַּלְתּוֹ פֶּן תִּשְׁוֶה לּוֹ גַם אָתָּה. ה עֲנֵה כְסִיל כְּאִוַּלְתּוֹ פֶּן יִהְיֶה חָכָם בְּעֵינָיו

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #24  
ישן 21-10-2007, 21:18
  Anasurimbor Anasurimbor אינו מחובר  
 
חבר מתאריך: 03.04.07
הודעות: 242
בתגובה להודעה מספר 12 שנכתבה על ידי Anasurimbor שמתחילה ב "מה שאני עושה זה דבר כזה: ..."

ציטוט:
במקור נכתב על ידי Anasurimbor
מה שאני עושה זה דבר כזה:
קוד PHP:
 $secret_word "sisma sodit she rak ata yodea"
setcookie('<cookiename>',''.",".md5(.$secret_word)); 

וכשאתה בודק את העוגייה ( בדף cp.php) אתה יכול לפרק את המחרוזת שבעוגייה לשם משתמש וה hash (split,explode) ולבדוק אם ה hash שלה שווה ל hash של username.$secret_word.

את השיטה הזאת למדתי ב php cookbook של o'reilly , אם לא הבנת משהו, תשאל ואני אסביר.


מצטער אבל כנראה בטעות מחקתי חלק חשוב, התיקון:

קוד PHP:
 $secret_word "sisma sodit she rak ata yodea"
 
setcookie('<cookiename>',",".md5('<username>'.$secret_word)); 


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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 20:47

הדף נוצר ב 0.07 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר