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

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

   
|!|

 
 
כלים לאשכול תצורת הצגה
Prev הודעה קודמת   הודעה הבאה Next
ישן 08-10-05, 19:11   # 1
Ikki
חסום
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: Israel
הודעות: 608

Ikki לא מחובר  

Exclamation [מדריך] PHP - הגנה נגד הזרקות כתובת

בס"ד

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

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


כיצד פועלות ההזרקות הכתובת?
ההזרקות הללו פועלות ע"י שליחת תוכן אחר לתוך שורת הכתובת.

למשל נתונה הכתובת:
קוד:
index.php?act=addpoint&add=500
ובמידה והקובץ אינו מוגן מהזרקות נוכל לשנות ערכים שיגרמו לבעיות.
ותוזרק הכתובת הבאה:
קוד:
index.php?act=addpoint&add=50000.464;?>
דבר אשר יגרום לבעיות.


כיצד נמנע ההזרקות כתובת?

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

- הצפנת נתונים.
במידה ונרצה ליצור משחק, שיהיה כמעיין חפש את המטמון. וניצור לחצן שיוסיף נקודות למשתמש כפרס ע"י לחיצה במקום מסוים בפורום, ושכל מקום יביא מספר שונה של נקודות; אך לא נרצה לתת מספר קטלוגי לכל מקום, כך שיביא נקודות שונות.
מה נעשה?, נצפין בשיטת הצפנה מסוימת הידועה רק לנו את מספר הנקודות, או נצפין בכמה הצפנות !.

- מניעת הזריקות למשתנה.
כפי שידוע לנו במידה ולא נמנע את הזריקות הנתונים מהכתובת ייובאו לתוך משתנים.
כדוגמא זו:
ציטוט:
index.php?act=addpoint&add=500
בעצם שורת כתובת זו תבצע את השורות הבאות.
PHP קוד:
<?php
$act 
"addpoint";
$add 500;
?>
כלומר, הנתונים יוזנו לתוך המשתנה(addpoint יוזן למשתנה act, ו 500 יוזן למשתנה add).

כיצד נמנע זואת?
נוכל למנוע זואת ע"י הזנה שזוהיא שליחת GET.
ונבנה את הקוד הבא:
PHP קוד:
<?php
$action 
$_GET[act];
$nadd $_GET[add];
?>
* אפשר לכתוב בתוך ה [] עם גרשיים קטנים או בלעדיים, זה עניין של נוחות.

- ניפוי באגים והקצבת מספר ערכים אפשריים.

במידה ואנו מעוניינים ליצור את כל הפעולות בקובץ אחד, כלומר ליצור action.
כיצד ניצור זואת?, ניצור זואת ע"י פונקציית ה Switch.

לדוגמא:
PHP קוד:
<?php
switch($_GET[act]) {
case 
"addpoint":
    include(
"include/addpoint.php");
    break;
case 
"points":
    include(
"include/points.php");
    break;
case 
"main":
    include(
"include/main");
    break;
default:
    include(
"include/main.php");
}
?>

כאן אנו מזינים שיש אפשרות לact להיות שלושה ערכים(addpoint, points, main), ואם לא הוגדר ערך תגדיר תעשה כך וכך.
כמובן שנוכל להיות מתוחכמים יותר ע"י לולאה שיוצר את ה case ע"פ הקבצים הקיימים במחיצת "include".

למידע נוסף אודות פונקצייה זואת בקרו ביחידה המסבירה על פונקציית Switch במדריך הרישמי של Php:
http://www.Php.Net/Switch


בהצלחה!,
Ikki

Last edited by Ikki; 08-10-05 at 21:06..
  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. הזמן כעת הוא 21:44.

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