|
הרשם | ![]() |
שאלות ותשובות | ![]() |
רשימת חברים | ![]() |
לוח שנה | ![]() |
הודעות מהיום | ![]() |
חיפוש | ![]() |
|
![]() |
![]() |
|
כלים לאשכול | תצורת הצגה |
![]() |
# 11 |
חבר וותיק
|
צא מSAFE MODE?
|
![]() |
![]() |
# 12 | |
חבר וותיק
|
אין לי אפשרות
ובכל מקרה אני רוצה שיעבוד גם במצב בטוח המערכת שלי תפעל בשרתים שיש את זה שם ציטוט:
Warning: mkdir() [function.mkdir]: No such file or directory in |
|
![]() |
![]() |
# 13 |
חבר בקהילה
|
עכשיו כשחשבתי על זה בראש צלול,
בוא נתבונן רגע בתמונה הזאת: יש לך תיקיה: קוד:
/home/user על התיקיה הזאת יש הרשאה:700, rwx למשתמש, וכלום לקבוצה וכלום לאחרים. עכשיו הסקריפט שלך, רץ תחת apache כניראה, אחרת למה ה safe mode? ולכן מקבל את ההרשאות של apache, כלומר היוזר www:www (או whatever). ולכן הסקריפט שלך מקבל מהמערכת הפעלה גישה נדחתה, כי אין ל apache הרשאות כתיבה לשם. רעיון מאוד גרוע: לתת 777 לתיקיה שבתוכה אתה רוצה לייצור תיקיות עם הסקריפט שלך, ואז זה יעבוד. הנה דוגמא על אחסון שיש לו safe_mode: דרך FTP: קוד:
ftp> put safe_dir.php local: safe_dir.php remote: safe_dir.php 229 Extended Passive mode OK (|||20676|) 150 Accepted data connection 100% |*************************************| 170 395.27 KB/s 00:00 ETA 226-File successfully transferred 226 0.161 seconds (measured here), 1.03 Kbytes per second 170 bytes sent in 00:00 (1.00 KB/s) ftp> mkdir test_dir 257 "test_dir" : The directory was successfully created ftp> chmod 777 test_dir 200 Permissions changed on test_dir ftp> quit 221-Goodbye. You uploaded 1 and downloaded 0 kbytes. קוד:
<?php $where_create = "test_dir/"; $dir = "safe_mode_mkdir"; var_dump( ini_get('safe_mode') ); if (mkdir($where_create . $dir)) echo 'Success'; else echo 'Failure'; ?> קוד:
string(1) "1" Success קוד:
ftp> ls test_dir 229 Extended Passive mode OK (|||39931|) 150 Accepted data connection drwxr-xr-x 2 81 81 512 Oct 16 15:31 safe_mode_mkdir 226-Options: -l 226 1 matches total ftp> |
![]() |
![]() |
# 14 |
חבר וותיק
|
ההסברים שלך מקצועיים אבל אני לא מבין
הראתי לך את הקוד שלי מה אני צריך לשנות שזה יעבוד בבקשה |
![]() |
![]() |
# 15 |
חבר בקהילה
|
מה שניסיתי להסביר הוא שהבעיה היא לא בקוד,
ובגלל אילוצים של השרת, (לא ממש קשור לsafe_mode אלה לסיבה שבגללה מפעילים את ה safe_mode) אין פתרון _טוב_ לבעיה שלך. פתרון גרוע, כמו שרשמתי מקודם, הוא לתת לתיקיה, שבה אתה רוצה לייצור את התיקיה הרשאות כתיבה לאחרים (chmod 777 למשל). זה פתרון גרוע, אבל זה כבר לפעם אחרת. |
![]() |
![]() |
# 16 |
חבר בקהילה
|
אני מזמן לא עבדתי עם SAFE MODE אבל אני זוכר שזה באמת בעיה ליצור תיקיה עם SAFE MODE. אני זוכר שפשוט לא מצאתי פתרון לזה כשה חיפשתי. בפורומים ברשת אמרו שאי אפשר.אולי זה לא ככה אבל שוב, מזמן לא עבדתי עם SAFE MODE ואולי יש פתרון לזה.
|
![]() |
![]() |
# 17 |
אחראי פורום תחזוק שרתים
|
דבר ראשון, כל הקבצים שהAPACHE מריץ, צריכים להיות עם הרשאות לAPACHE, ככה שלא רק שאין פסול בלתת לAPACHE הרשאות, זה אפילו מומלץ!
אבל בוא ניקח רגע צעד אחד אחורה, למה אתה צריך ליצור תיקיות? משהו ספציפי ופרטני? אכפת לך לפרט כאן? כל הפונקציות מערכת מעמיסות בשימוש לא נכון, והן תלויות מערכת. קרי - אם אתה בונה מערכת להפצה, שתגיד לסוגים שונים של מערכות הפעלה (אפילו windows/linux), לא מומלץ לעבוד עם פונקציות מערכת. אם תפרט כאן את הצורך, אולי אפשר להגיע לפתרון נוח ואולי אפילו יותר טוב (כמו mod_rewrite למשל)
__________________
Omer Cohen
Information Security Specialist eBaY Inc |
![]() |
![]() |
# 19 | ||
חבר בקהילה
|
ציטוט:
נוצרת כאן בעיה שכולם יכולים לגשת לקבצים של כולם, הרי את הסקריפטים של כולם אפאצ'י יכול לקרוא כדי להריץ, וגם כולם רצים תחת המשתמש של אפאצ'י ומכאן החור אבטחה. את הבעיה הזאת בא לפתור safe_mode ע לכל נגזרותיו. הפתרון הזה גרוע, PHP לא צריך להתעסק בדברים שמערכת הפעלה צריכה לעשות ויודעת לעשות את זה טוב. במשך זמן חייו של הsafe mode היו כל כך הרבה פרצות שאפשרו לעקוף אותו. בוא נתבונן רגע בSecurityFocus, ניראה ממתי מצאו את החור האחרון שקשור לsafe mode. יש לנו פה באג מספטמבר השנה, ועוד רבים, ואילו רק הדברים שמצאו PHP גם לא משלים אף אחד, הם עצמם אומרים שהפתרון גרוע: http://il2.php.net/safe_mode ציטוט:
אז כן, אם היה אפשר שרק לאפאצ'י יהיה את הגישה לקבצים שלנו, זה מצויין, אבל לsafe mode אין שום קשר ליכולת הזו. |
||
![]() |
![]() |
# 20 |
חבר וותיק
|
יש לי בעיה גם בפונקציה שמעתיקה קבצים
השגיאה copy(add1.php) [function.copy]: failed to open stream: Permission denied in הקוד PHP קוד:
אין פיתרון? |
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|