קבלת נתונים מטפסים ואבטחה - תיכנות ובניית אתרים בעזרת PHP

מדור תיכנות ובניית אתרים בעזרת PHP

הוסף למועדפים | הפוך לאתר הבית
מדור ברשת



רוצה לעזור?

אם אתה מעוניין לעזור לנו בפיתוח האתר, באפשרותך לשלוח מאמר\מדריך אל רשימות המאמרים שלנו, תודה על שיתוף הפעולה, הנהלת האתר.


אתרים מומלצים

מעוניינים לשחק משחקים ברשת , משחקי פלאש ועוד? בקרו באתרי משחקים הבאים: גיימאקסטרה משחקים או בבלוג המשחקים: בלוג משחקים

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

נתחיל עם יצירת טפסים, עליכם לדעת HTML בכדי להתחיל את זה.

אנחנו נתחיל עם מטודה (mehod) מסוג post, יש גם עוד אפשרות וזה get, אבל ה-GET נשלח דרך כתובת האתר לדוגמא בטח כבר יצא לכם לראות באתרים רבים:
id=234

ועכשיו לדוגמא הקוד הבא:
קוד

<form action="filename.php" method="post">

הקלד את שמך: <input type="text" name="urname" id="urname" />
<input type="submit" value=" שלח " />

</form>



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

בתוך ה-form יש שורת קוד method="post" והיא בעצם אומרת לשרת לשלוח את הנתונים בצורת "פוסט" ואז נוכל לגשת אליהם בצורה הבאה:
קוד

$name = $_POST["urname"];


השתמשנו פה במשתנה הגלובאלי הנקרא POST והוא מיוחד כמו GET מכוון שבין הסוגריים כמו שהפעם רשמנו "urname" אז אנחנו יכולים כל פעם לשנות את זה לשם השדה שבחרנו כמו בקוד למעלה שמבקש את השם שלכם אז אפשר גם לעשות ככה:

קוד

$name = $_POST["urname"];
$password = $_POST["password"];
$email = $_POST["email"];




במידה והיה לנו שדה טופס עם השמות הללו email, password, urname אז ככה היינו יכולים לפנות אליהם ולעשות איתם כרצוננו.

עכשיו בואו נשכלל את הקוד הקודם שלנו, הפעם נקרא לקובץ שלנו test.php.

קוד

<?php
if($_POST["urname"] != NULL) // NULL = noting...
{
$urname = $_POST["urname"];
echo "השם שלך הוא ".$urname;
}
else //else...
{

?>

<form action="test.php" method="post">

הקלד את שמך:< input type="text" name="urname" id="urname" />
<input type="submit" value=" שלח " />

</form>

<?php
}
?>



מה קורה בקוד הזה בעצם? פשוט מאוד הוספנו if במקרה והביטוי שבתוכו מחזיר תשובה חיובית (true) אז אתה מכניס את המשתנה הגלובאלי מהפוסט לתוך משתנה רגיל ואז כותב "השם שלך הוא X".
בכך שכתבנו $_POST["urname"] != NULL בעצם אמרנו במקרה שהמשתנה POST ריק (NULL זה מעין ביטוי למשהו ריק) אז תכתוב את ההודעה לגבי שמך.

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

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

$urname = htmlspecialchars( $_POST["urname"] );

//more code...



עוד דבר קטן הוא לדוגמא בפורומים יש לכם תיבות גדולות שמאפשרות לכם להכניס תוכן רב להודעות ולשלוח, זה נעשה בעזרת POST גם כן - אבל קוד הHTML שלהם הוא כזה:

קוד


<textarea cols="80" rows="20" name="msg" id="msg">



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

בשיטה הזו אתם יכולים נגיד ליצור טופס הרשמה\התחברות\שליחת הודעה\עדכונים\פתיחת דף חדש\וכל העולה לרוחכם.
דפים נוספים בקטגוריה תיכנות ובניית אתרים בעזרת PHP
ניווט אתר בעזרת include ו-switch ואבטחה
שימוש ב- sessions
איך לבדוק את פורמט האימייל בPHP
עיזרו לנו
אהבת את המדריך? הצבע עבורנו וקדם את האתר שלנו!