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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 01-06-06, 10:46   # 1
-VladK-
הוסטסניון
 
-VladK-'s Avatar
 
מיני פרופיל
תאריך הצטרפות: Apr 2006
גיל: 30
הודעות: 2,182

-VladK- לא מחובר  

[מדריך] PHP - כיצד להשתמש בGET בצורה מאובטחת!

אהלן אנשים!
היום ביקשתי עזרה כיצד לאבטח את הGET...הביאו לי כמה שיטות ...כמו כן גם הרצתי חיפוש פה בפורום וגם בPHP העולמי....ומצאתי מלא דרכים שאם לשלב את כולם קשה מאוד (אם בכלל אפשרי) לפרוץ או לפגוע בכל דבר אחר!

קודם כל אני רוצה להתחיל בבדיקה האם בכלל השתמשו בGET....ואם אכן כן אז שנמשיך בבדיקה...
איך אנחנו בודקים אם אכן הקלידו GET? בצורה כזאת:
PHP קוד:
if(isset($_GET['act'])) {

פשוט נכון?...תחליפו את הACT במה שאתם רוצים...אוקיי עכשיו בדקנו אם אכן השתמשו בGET...
אוקיי נגיד והשתמשו בGET שאנחנו צריכים (ACT במקרה הזה) אז עכשיו נגיד והGET שלנו הוא סוג של עמוד...עמוד כתבות, צפיה בפורום או כל דבר אחר...ואנחנו יודעים מראש מה אנחנו צריכים...אז נגיד ואנחנו צריכים כמה עמודים...אז אנחנו בודקים שמה שנמצא אחרי השווה בGET שלנו הוא אכן מה שאנחנו צריכים לדוגמה:
PHP קוד:
if(($_GET['act'] != "idx") and ($_GET['act']!= "register") and ($_GET['act']!= "articles") and ($_GET['act']!= "login") and ($_GET['act']!= "forums") and ($_GET['act']!= "manage") and ($_GET['act']!= "funny") and ($_GET['act']!= "mondial") and ($_GET['act']!= "pics")) { 
אוקיי עכשיו אם אכן אחד מהם הוא מה שהקלדנו נעבור לבדיקה הבאה...אם הקלדנו PICS לדוגמה...אז שיעשה הדפסה של נתונים...לדוגמה:
PHP קוד:
if($_GET['act'] == "pics") {
$tipe "תמונות הגולשים";
echo 
"תמונות";

אוקיי בדקנו...יופי...הכל מצויין...עכשיו נגיד ואנחנו צריכים שהACT יהיה מספר...כאן באים קצת יותר בדיקות...הבדיקה הראשונה שלנו היא האם המספר שהקלידו הוא אכן מספר (יש כאלה שמקלידים מילים במקום מספרים) הבדיקה מתבצעת כך:
PHP קוד:
if (is_numeric($_GET['id'])) { 
אוקיי בדקנו אם אכן מה שהוקלד זה באמת מספר...הכל טוב יפה אבל כפי שככול הנראה ידוע לכם שיש אותיות שיש להן ערך מספרי...לדוגמה האות e. כותבים אותה בצורה כזאת:
PHP קוד:
12e54 
איזה באסה...הPHP חשב שזה מספר למרות שזה לא...יש פיתרון לזה...הפונקציה החדשה שהיום מצאתי (שבגללה אגב כתבתי תמדריך...) הפונקציה נקראת intval והיא מוריד את מה שלא צריך במספר כלומר אם יש לי את המספרים הבאים:
PHP קוד:
12e54
13.5485 
כותבים נגיד:
PHP קוד:
    $getID $_GET['id'];
    
$getID intval($getID); 
הוא יעיף את מה שלא צריך...כלומר התוצאה תצא:
PHP קוד:
12
13 
אלא יהיו התוצאות (מה שרצינו לא?)

מגניב נכון? אוקיי והנה הבדיקה אחרונה שהיא קשורה כבר לMYSQL...
נגיד ואתם רוצים להשתמש בGET שהוא ID שהקלידו כקלי עזר בשביל להוציא נתונים מהמסד...כלומר בצורה כזאת:
PHP קוד:
            $getID $_GET['id'];
            
$getID intval($getID);
            
$sart1 mysql_query("SELECT * FROM Articles WHERE artID = $getID"); 
אז נגיד וכתבו בGET מספר שאינו קיים במסד נתונים...מה עושים? הרי זה ידפיס שגיאה שמאוד לא תורמת לעיצוב של האתר? ניתן לעשות בדיקה שבודקת אם אין שורה במספר שהוקלד אז שתחזיר שגיאה שאתם יכולים לקבוע איך היא תראה! הנה היא:
PHP קוד:
if($count == 0) {
    echo 
"המאמר אינו קיים!";

שמחים הא?

עכשיו יש לכם GET מאובטח מאוד ונוח יחסית לשימוש...

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

כל הזכויות שמורות לולדי קוצ'רוב (CriSis) על כתיבת מאמר זה! לפרטים נוספים אנא צרו קשר באימייל:
kucherov@bezeqint.net
  Reply With Quote
ישן 01-06-06, 10:48   # 2
ohadamar
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Dec 2005
מיקום: ירוחם
גיל: 31
הודעות: 1,310
שלח הודעה באמצעות ICO אל ohadamar שלח הודעה באמצעות MSN אל ohadamar

ohadamar לא מחובר  

תודה על המדריך ולדה =]
  Reply With Quote
ישן 01-06-06, 10:51   # 3
-VladK-
הוסטסניון
 
-VladK-'s Avatar
 
מיני פרופיל
תאריך הצטרפות: Apr 2006
גיל: 30
הודעות: 2,182

-VladK- לא מחובר  

ציטוט:
נכתב במקור על ידי ohed
תודה על המדריך ולדה =]
בקשה אוהד! כפרה אליך!
  Reply With Quote
ישן 01-06-06, 10:52   # 4
Alter
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 31
הודעות: 3,103

Alter לא מחובר  

אממ נחמד, יעזור לי באתר שאני עושה, למרות שהכנסתי כבר את כל מה שציינת פה =]
__________________
Alter.
  Reply With Quote
ישן 01-06-06, 10:54   # 5
-VladK-
הוסטסניון
 
-VladK-'s Avatar
 
מיני פרופיל
תאריך הצטרפות: Apr 2006
גיל: 30
הודעות: 2,182

-VladK- לא מחובר  

ציטוט:
נכתב במקור על ידי Alter
אממ נחמד, יעזור לי באתר שאני עושה, למרות שהכנסתי כבר את כל מה שציינת פה =]
את כל זה?!?
  Reply With Quote
ישן 01-06-06, 10:54   # 6
BBman
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 28
הודעות: 608
שלח הודעה באמצעות MSN אל BBman

BBman לא מחובר  

יפה מאוד , בהצלחה בהמשך!
  Reply With Quote
ישן 01-06-06, 10:55   # 7
eXtaZa
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Dec 2005
הודעות: 288

eXtaZa לא מחובר  

כל הכבוד! מדריך טוב!
ובקשר לAlter ... למה אתה חושב שהוא לא הכניס את כל זה?
אולי כתבת פה הרבה ובגלל זה זה נראה לך ארוך, אבל אם תסתכל רק על הקודים שצריך להכניס לדף כדי לאבטח אותו, תראה שזה בסך הכל כמה שורות...
  Reply With Quote
ישן 01-06-06, 10:55   # 8
meshuga
הנהלת הפורום לשעבר
 
meshuga's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 30
הודעות: 7,601

meshuga לא מחובר  

נוסף למדריכים.
  Reply With Quote
ישן 01-06-06, 10:58   # 9
-VladK-
הוסטסניון
 
-VladK-'s Avatar
 
מיני פרופיל
תאריך הצטרפות: Apr 2006
גיל: 30
הודעות: 2,182

-VladK- לא מחובר  

ציטוט:
נכתב במקור על ידי meshuga
נוסף למדריכים.
חחח אם לא היתה מוסיף היתי מפוצץ אותך! השקעתי שעה על זה !
  Reply With Quote
ישן 01-06-06, 11:23   # 10
Alter
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 31
הודעות: 3,103

Alter לא מחובר  

CriSis אין פה הרבה קודים =]
וכן הכנסתי הכל (טוב כמעט הכל, יש דברים שלא הייתי צריך לבדוק בכלל...)
והקוד השני שנתת (שאם אני יודע מראש את הact..) אז זה מהנושא שאני פתחתי שחיפשתי דרך לעשות את זה =]
סהכ יש פה כמה שורות קוד קצרות, בדיקה שהGET קיים, בדיקה שהתוכן שלו קיים, בדיקה שהתוכן שלו מתאים למה שאני רוצה, ובדיקה שהמידע קיים בבסיס נתונים. די בסיס =]
__________________
Alter.
  Reply With Quote
השב

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

Tags
אבטחה, מדריך למתחילים, מדריך php

כלים לאשכול
תצורת הצגה

חוקי פירסום
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. הזמן כעת הוא 01:05.

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