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

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [PHP] צריך עזרה במערך (https://hosts.co.il/forums/showthread.php?t=28848)

Elad-A 15-08-06 17:29

[PHP] צריך עזרה במערך
 
שלום,

אני רוצה לעשות מערך נגד התקפות, הזרקות וכו'
עשיתי ככה:
PHP קוד:

$act $_GET['act'];
$ea2 '1|2|22';
$elad=array();
$elad explode("|",$ea2); 
if(
in_array($act$elad))
{
echo 
"your ip was banned" ;


בקצרה הקוד עושה שאם מקלידים בשורת הכתובת אחד מאלה:
PHP קוד:

$ea2 '1|2|22'

יהיה רשום לו:
your ip was banned

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

eLad 15-08-06 18:14

מה ז"א אומרת כל סוגי ההזרקות?

RS324 15-08-06 18:29

ואיך בדיוק 1|2|22 מכסים איזה שהוא סוג של הזרקה ?

Elad-A 15-08-06 19:09

החלק הזה סתם דוגמא. אני רוצה להחליף אותו במערך עם כל סוגי ההזרקות למינהם כגון: create , drop , insert , select וכו'

lalamen 15-08-06 19:13

PHP קוד:

$act $_GET['act']; 
$elad=array("select","insert");
if(
in_array($act$elad))
{
echo 
"your ip was banned" ;



Elad-A 15-08-06 19:17

תודה, עובד. אך אם מישהו יעשה דבר כזה:

index.php?act=insert into tbl

זה לא יחסום אותו. מה אפשר לעשות?

Eli-Hai 15-08-06 19:27

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

index.php?act=DELETE FROM `table` WHERE `id` = '1'
זה לא שהשיאלתה תתבצע לו.
תבין, אם $_GET לא מוגדר בתוך שיאלתה, הוא יכול לכתוב מה שהוא רוצה, אם "הגדרת" את ה$_GET הספציפי בקבצים, הוא יצפה בו, אם לא, הוא יקבל את הdefault שלך.

Elad-A 15-08-06 19:30

אני מגדיר בדף חיצוני את ה ACT עם ההתחברות והפרטים הנחוצים האחרים. (וד"א תוכל להביא לי את הקוד של המחלקה שעושה גיבוי MYSQL?)

Eli-Hai 15-08-06 19:41

נניח שאני בונה מערכת סקרים, וכל העמודים שלי הם act, יש לי עמודים כגון צפייה בכל הסקרים, ארכיון, סקרים נעולים, ותוצאות סקר X, אז כל הactים שלי נראים כך?
קוד:

index.php?act=viewall
index.php?act=archive
index.php?act=locked
index.php?act=results&id=X

כל אחד מהactים שלי, מוגדר במסגרת switch(), כך -
קוד:

switch($_GET["act"]) {
        case "viewall":
                // In This Page I Can See All Polls
        break;
        case "archive":
                // In This Page I'll See The Polls Archive
        break;
        case "locked":
                // In This Page All the Locked Polls will be Printed
        break;
        case "results":
                // This Page will Show Polls Results (Without Vote)
        break;
}

אנחנו מקשרים כאן לפונקציות בסיסיות במערכת, ומשום שה$_GET שלי אינו מוגדר כשיאלתה, אין סיבה שינסו להזריק ל-MySQL.
כל ניסיון כושל להכשלת המערכת, ולו לשגיאה פשוטה ביותר, יכשל משום שהעמוד שאליו הם מנסים לגשת אינו מוגדר במסגרת הswitch(), ויוצג להם עמוד ברירת המחדל (index.php ללא act), דוגמאות לניסיונות כאלו -
קוד:

index.php?act=admin
index.php?act=test
index.php?act=cookies
index.php?act=hacking

על מנת להגדיר עמוד ברירת מחדל, שאם המשתמש הגיע במכוון או לא במכוון, לעמוד שאינו קיים במערכת שלנו, נגדיר את default בswitch() שלנו, כך -
קוד:

default:
        // This is The Default Page of my Polls System

לגבי המחלקה שיוצרת גיבוי של הMySQL, אתה צריך להירשם לאתר על מנת לראות את הקבצים שפורסמו.

Elad-A 15-08-06 19:43

כן אבל ניתן ליצור הזרקות למסד גם בעזרת ACT לא חסר כאלה שיצליחו.. תודה על ההסבר המושקע :)


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

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