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

הוסטס - פורום אחסון האתרים הגדול בישראל (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=99426)

Ori The Man 20-08-12 19:20

מהי הדרך הכי טוב לחסום גישה ישירה לקבצי PHP
 
מהי הדרך הכי טוב לחסום גישה ישירה לקבצי PHP לצורך אבטחה כמובן.
שרק דרך השרת יהייה ניתן לשלוח אליו נתונים

Daniel 20-08-12 19:38

* להגדיר משתנה בקובץ הראשי (עם define) ולבדוק בקבצים אם is_defined
* שבקבצים עצמם יהיה רק class - הקובץ שמבצע את ה-include יצטרך לקרוא ל-class בעצמו
* htaccess
* לשים אותם בתיקיה מעל ה-public_html

אלה 4 שיטות אפשריות... מה שלרוב מיישמים זה שילוב של 1+2 - ברירת מחדל יש רק את ה-class ואז גם אם מישהו יגש זה לא ישנה לאף אחד... ואם צריכה להתבצע פעולה בקובץ בכל מקרה - אז בודקים אם:
PHP קוד:

is_defined("my_system_variable"

ורק אם כן ממשיכים.

Kernel 20-08-12 20:09

PHP קוד:

if ($_SERVER['REMOTE_ADDR'] != "127.0.0.1") { die('wrong ip'); } 

שים לב שבמידה ואתה עובד עם Virtual Hosts ב-Apache זה לא יעבוד (ובמקום 127.0.0.1 תחליף באייפי של השרת).

אבי.

בניה 20-08-12 20:21

גישה דרך הFILE SYSTEM או דרך HTTP?
ממה אתה חושש בסופו של דבר?

Daniel 20-08-12 20:35

ציטוט:

נכתב במקור על ידי Kernel (פרסם 855018)
PHP קוד:

if ($_SERVER['REMOTE_ADDR'] != "127.0.0.1") { die('wrong ip'); } 

שים לב שבמידה ואתה עובד עם Virtual Hosts ב-Apache זה לא יעבוד (ובמקום 127.0.0.1 תחליף באייפי של השרת).

אבי.

אבי, אבל גם כשאתה עושה include - המשתנים הגלובאליים (לרבות $_SERVER) לא משתנים..

אם משתמש נכנס אל index.php ושם בוצע include ל-someclass.php - אז ה-$_SERVER['REMOTE_ADDR'] ישאר ה-IP של המשתמש...

Itay 20-08-12 20:40

אם יש לך מבנה מסויים של קבצים, לדוגמא - כל המערכת עובדת דרך index.php, אז אתה יכול לבדוק אם הקובץ שהמשתמש נמצא בו (לא זוכר מה המשתנה ב-$_SERVER, תבדוק) הוא לא בשם הזה ואז לחסום גישה

Kernel 20-08-12 20:42

ציטוט:

נכתב במקור על ידי Daniel (פרסם 855021)
אבי, אבל גם כשאתה עושה include - המשתנים הגלובאליים (לרבות $_SERVER) לא משתנים..

אם משתמש נכנס אל index.php ושם בוצע include ל-someclass.php - אז ה-$_SERVER['REMOTE_ADDR'] ישאר ה-IP של המשתמש...

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

איציק ברבי 20-08-12 21:57

ציטוט:

נכתב במקור על ידי Kernel (פרסם 855025)
שים לב מה פותח הפוסט ביקש,
זה עדיין פותר לו את הבעיה.

מה קורה במקרה שיש RFI באחד האחסונים בשרת?

perfeito 20-08-12 22:03

אתה יכול פשוט לא לשים את הקבצים ב document root.

אני אישית שם קובץ אחד index.php
וכל שאר הקבצים הם מחוץ ל document root כך שאפשר לגשת דרך הרשת רק אל index.php.

Kernel 20-08-12 22:49

ציטוט:

נכתב במקור על ידי איציק ברבי (פרסם 855031)
מה קורה במקרה שיש RFI באחד האחסונים בשרת?

אם אבטחה קריטית לך, אתה תהיה לבד בשרת.


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

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