![]() |
צא מSAFE MODE?
|
ציטוט:
ובכל מקרה אני רוצה שיעבוד גם במצב בטוח המערכת שלי תפעל בשרתים שיש את זה שם ציטוט:
Warning: mkdir() [function.mkdir]: No such file or directory in |
עכשיו כשחשבתי על זה בראש צלול,
בוא נתבונן רגע בתמונה הזאת: יש לך תיקיה: קוד:
/home/user על התיקיה הזאת יש הרשאה:700, rwx למשתמש, וכלום לקבוצה וכלום לאחרים. עכשיו הסקריפט שלך, רץ תחת apache כניראה, אחרת למה ה safe mode? ולכן מקבל את ההרשאות של apache, כלומר היוזר www:www (או whatever). ולכן הסקריפט שלך מקבל מהמערכת הפעלה גישה נדחתה, כי אין ל apache הרשאות כתיבה לשם. רעיון מאוד גרוע: לתת 777 לתיקיה שבתוכה אתה רוצה לייצור תיקיות עם הסקריפט שלך, ואז זה יעבוד. הנה דוגמא על אחסון שיש לו safe_mode: דרך FTP: קוד:
ftp> put safe_dir.php קוד:
<?php קוד:
string(1) "1" Success קוד:
ftp> ls test_dir |
ההסברים שלך מקצועיים אבל אני לא מבין
הראתי לך את הקוד שלי מה אני צריך לשנות שזה יעבוד בבקשה |
מה שניסיתי להסביר הוא שהבעיה היא לא בקוד,
ובגלל אילוצים של השרת, (לא ממש קשור לsafe_mode אלה לסיבה שבגללה מפעילים את ה safe_mode) אין פתרון _טוב_ לבעיה שלך. פתרון גרוע, כמו שרשמתי מקודם, הוא לתת לתיקיה, שבה אתה רוצה לייצור את התיקיה הרשאות כתיבה לאחרים (chmod 777 למשל). זה פתרון גרוע, אבל זה כבר לפעם אחרת. |
אני מזמן לא עבדתי עם SAFE MODE אבל אני זוכר שזה באמת בעיה ליצור תיקיה עם SAFE MODE. אני זוכר שפשוט לא מצאתי פתרון לזה כשה חיפשתי. בפורומים ברשת אמרו שאי אפשר.אולי זה לא ככה אבל שוב, מזמן לא עבדתי עם SAFE MODE ואולי יש פתרון לזה.
|
דבר ראשון, כל הקבצים שהAPACHE מריץ, צריכים להיות עם הרשאות לAPACHE, ככה שלא רק שאין פסול בלתת לAPACHE הרשאות, זה אפילו מומלץ!
אבל בוא ניקח רגע צעד אחד אחורה, למה אתה צריך ליצור תיקיות? משהו ספציפי ופרטני? אכפת לך לפרט כאן? כל הפונקציות מערכת מעמיסות בשימוש לא נכון, והן תלויות מערכת. קרי - אם אתה בונה מערכת להפצה, שתגיד לסוגים שונים של מערכות הפעלה (אפילו windows/linux), לא מומלץ לעבוד עם פונקציות מערכת. אם תפרט כאן את הצורך, אולי אפשר להגיע לפתרון נוח ואולי אפילו יותר טוב (כמו mod_rewrite למשל) |
תנסה לתת הרשאה 0777 עם 0 בהתחלה כך:
PHP קוד:
|
ציטוט:
נוצרת כאן בעיה שכולם יכולים לגשת לקבצים של כולם, הרי את הסקריפטים של כולם אפאצ'י יכול לקרוא כדי להריץ, וגם כולם רצים תחת המשתמש של אפאצ'י ומכאן החור אבטחה. את הבעיה הזאת בא לפתור safe_mode ע לכל נגזרותיו. הפתרון הזה גרוע, PHP לא צריך להתעסק בדברים שמערכת הפעלה צריכה לעשות ויודעת לעשות את זה טוב. במשך זמן חייו של הsafe mode היו כל כך הרבה פרצות שאפשרו לעקוף אותו. בוא נתבונן רגע בSecurityFocus, ניראה ממתי מצאו את החור האחרון שקשור לsafe mode. יש לנו פה באג מספטמבר השנה, ועוד רבים, ואילו רק הדברים שמצאו PHP גם לא משלים אף אחד, הם עצמם אומרים שהפתרון גרוע: http://il2.php.net/safe_mode ציטוט:
אז כן, אם היה אפשר שרק לאפאצ'י יהיה את הגישה לקבצים שלנו, זה מצויין, אבל לsafe mode אין שום קשר ליכולת הזו. |
יש לי בעיה גם בפונקציה שמעתיקה קבצים
השגיאה copy(add1.php) [function.copy]: failed to open stream: Permission denied in הקוד PHP קוד:
אין פיתרון? |
כל הזמנים הם GMT +2. הזמן כעת הוא 18:02. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ