הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   SecureMe v1.0 (https://hosts.co.il/forums/showthread.php?t=56014)

RS324 04-11-07 07:23

לפותח האשכול... כל הכבוד על היוזמה

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

1. יש כל כך הרבה מילים, שאני בטוח ששום רשימה כאן לא מקיפה את כולם.
2. אפשר להכניס את המילים האלה לא רק ב GET אלה גם דרך POST ודרך COOKIE ואפילו דרך FILES אז למה לעשות סינון רק ל GET
3. האפשרות הזאת של הסינון רק מכבידה על האתר , להעביר רשימה כל כך ארוכה על 3-4 סופר גלובלס העיקריים, לוקחת בעיקר משאבים שיאטו את הטעינה של האתר גם אם בפועל לא בוצעה פעולה.
4. נניח וזה באמת עובד, חשבתם על זה שזה יכול לחסום דברים חשובים ולהרוס פעולות לדוגמא :
PHP קוד:

index.php?mod=users&act=select&userid=55 

במקרה כזה דפקתי את כל הפעולה.

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

HighA 04-11-07 08:49

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

PHP קוד:

<?php
$a
=3;
if(
$a<5){
    echo 
"A is smaller then 5";
}
?>

דבר שלישי, לא ממש בדקתי את כל המערכת, נכנסתי רק לקובץ secme.php
את כל החלק
PHP קוד:

<?php
$query 
str_replace("''""'"$_SERVER['REQUEST_URI']);
$query str_replace("''""'"$_SERVER['REQUEST_URI']);
$query addslashes($_SERVER['REQUEST_URI']);
$query mysql_escape_string($_SERVER['REQUEST_URI']);
htmlspecialchars($query);
?>

לא מספיק
PHP קוד:

$query mysql_escape_string($_SERVER['REQUEST_URI']);
$query=htmlspecialchars($query); 

?

RS324 04-11-07 09:00

יש פה טעות :
PHP קוד:


<?php
$query 
str_replace("''""'"$_SERVER['REQUEST_URI']);
$query str_replace("''""'"$_SERVER['REQUEST_URI']);
$query addslashes($_SERVER['REQUEST_URI']);
$query mysql_escape_string($_SERVER['REQUEST_URI']);
htmlspecialchars($query);
?>

כל פעולה אתה מבטל את הפעולה הקודמת
מהפעולה השניה והלאה היית צריך לעשות את הפעולות על המשתנה $query

talbeno 04-11-07 09:51

תודה רבה.

somebody 04-11-07 13:20

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

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

בכל מיקרה יוזמה יפה, ובהצלחה בהמשך הדרך:)

talbeno 04-11-07 13:41

אני חוסם גם מילים וגם תווים.
שיהיה על כל מקרה, אם ימצאו איזה דרך בhex או משהו.

תודה :)

DDRHOSTING 04-11-07 15:11

אחלה יוזמה

Daniel-H 05-11-07 00:32

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

talbeno 05-11-07 09:03

זה שסתם רשמת זו לא הבעיה שלי, אתה לא אמור לרשום את זה.

ואני כתבתי כבר, שזו אבטחה פשוטה של חסימת מילים\תווים בGET.

Elad-P 05-11-07 17:13

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


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

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