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

   
|!|

 
 
כלים לאשכול תצורת הצגה
Prev הודעה קודמת   הודעה הבאה Next
ישן 01-06-06, 10:46   # 1
-VladK-
הוסטסניון
 
-VladK-'s Avatar
 
מיני פרופיל
תאריך הצטרפות: Apr 2006
גיל: 33
הודעות: 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
 

חברים פעילים הצופים באשכול זה: 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. הזמן כעת הוא 15:27.

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