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

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   memcache ו memcached פועל על כל האתרים בשרת? (https://hosts.co.il/forums/showthread.php?t=105766)

MAORBARI 24-11-13 08:53

memcache ו memcached פועל על כל האתרים בשרת?
 
היי אם אני מגדיר באתר x את value על key abc
אם אני ישלוף באתר y את abc מהקאש הוא יציג לי את הערך שהכנסתי באתר x או שהוא יציג לי null?
תודה

בניה 24-11-13 10:18

ציטוט:

נכתב במקור על ידי MAORBARI (פרסם 884193)
היי אם אני מגדיר באתר x את value על key abc
אם אני ישלוף באתר y את abc מהקאש הוא יציג לי את הערך שהכנסתי באתר x או שהוא יציג לי null?
תודה

אם אתה מחובר לאותו שרת memcache אז כן.

MAORBARI 24-11-13 14:21

ואיך אני עושה שלכל אתר יהיה שרת??

yonatan 24-11-13 15:48

אפשר להריץ כל אתר על VPS נפרד.

MAORBARI 24-11-13 16:34

ציטוט:

נכתב במקור על ידי yonatan (פרסם 884214)
אפשר להריץ כל אתר על VPS נפרד.

אבל זה לא פתרון.. אני מחפש פתרון תכנותי לבעיה..

yonatan 24-11-13 17:51

ציטוט:

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

שרת וירטואלי הוא פתרון תוכנתי להפרדה בדיוק כמו שאתה מתאר בשאלה שלך, לכל אתר "שרת".
אולי אתה לא ברור בשאלה שלך ולא הבנתי , מה המטרה שאתה מנסה להגיע אליה ?

Kernel 24-11-13 18:06

לכל מפתח אתה מצמיד את שם האתר, ואז לא נוצרת התנגשות.

MAORBARI 24-11-13 19:33

ציטוט:

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

אבל כל אחד יכול להצמיד את שם האתר של האחר.. זה חתיכת חור אבטחה!!
יונתן אחי תקרא בהודעה הראשונה ותבין מה הבעיה שאני מדבר עליה.. תודה!

yonatan 24-11-13 20:37

ציטוט:

נכתב במקור על ידי MAORBARI (פרסם 884221)
אבל כל אחד יכול להצמיד את שם האתר של האחר.. זה חתיכת חור אבטחה!!
יונתן אחי תקרא בהודעה הראשונה ותבין מה הבעיה שאני מדבר עליה.. תודה!

הפתרון ל"חור אבטחה" שאתה מציג הוא באמת להריץ memcahed נפרד לכל אתר.
כדי לעשות את זה בצורה יעילה ופשוטה מומלץ על שרת VPS נפרד לכל MEMCACHED.

אפשרות יותר מורכבת אם אתה רוצה להתנסות:
אפשר לעשות את זה גם ב jailed shell לכל משתמש להריץ memcached על פורט נפרד או איפי פנימי נפרד לכל אתר.
לדוגמא:
http://www.ducea.com/2008/01/11/securing-memcached/

עכשיו הרעיון שזה יהיה מאובטח באמת, צריך להוסיף SELINUX
setsebool -P httpd_can_network_memcache 1
ולדאוג שכל משתמש יריץ את php תחת המשתמש שלו, כך הם לא יוכלו לצאת לתהליך memcached אחד של השני.

MAORBARI 24-11-13 21:02

ציטוט:

נכתב במקור על ידי yonatan (פרסם 884223)
הפתרון ל"חור אבטחה" שאתה מציג הוא באמת להריץ memcahed נפרד לכל אתר.
כדי לעשות את זה בצורה יעילה ופשוטה מומלץ על שרת VPS נפרד לכל MEMCACHED.

אפשרות יותר מורכבת אם אתה רוצה להתנסות:
אפשר לעשות את זה גם ב jailed shell לכל משתמש להריץ memcached על פורט נפרד או איפי פנימי נפרד לכל אתר.
לדוגמא:
http://www.ducea.com/2008/01/11/securing-memcached/

עכשיו הרעיון שזה יהיה מאובטח באמת, צריך להוסיף SELINUX
setsebool -P httpd_can_network_memcache 1
ולדאוג שכל משתמש יריץ את php תחת המשתמש שלו, כך הם לא יוכלו לצאת לתהליך memcached אחד של השני.

תודה רבה יונתן !

אבל זה מבחינת השרת לא מבחינת תכנותית.. ז"א שאם מחר אני מוכר את המערכת שלי לשני לקוחות שנמצאים על אותו שרת שלי אין גישה אליו.. ועל השרת מותקן memcached בצורה רגילה..
עדיין זה לא יהיה מאובטח במערכת שלי.. ז"א כאילו נפתח חור אבטחה במערכת שאני בונה בעקבות הקאש הזה..

אז אני צריך פתרון תכנותי ולא שרתי.. יש פתרון כזה? או שזה פשוט בלתי אפשרי?

Kernel 24-11-13 22:46

ציטוט:

נכתב במקור על ידי MAORBARI (פרסם 884225)
תודה רבה יונתן !

אבל זה מבחינת השרת לא מבחינת תכנותית.. ז"א שאם מחר אני מוכר את המערכת שלי לשני לקוחות שנמצאים על אותו שרת שלי אין גישה אליו.. ועל השרת מותקן memcached בצורה רגילה..
עדיין זה לא יהיה מאובטח במערכת שלי.. ז"א כאילו נפתח חור אבטחה במערכת שאני בונה בעקבות הקאש הזה..

אז אני צריך פתרון תכנותי ולא שרתי.. יש פתרון כזה? או שזה פשוט בלתי אפשרי?

Memcache לא מיועד לדברים האלה,
הוא מיועד לאיחסון נתונים ולאפשר שליפה מהירה.

לדוגמא - שימוש ב-Memcache בשביל Sessions מאפשר טיפול בסשנים במהירות שיא (במקום לטחון את המסד), אבל המצב הוא כזה שכל אחד עם גישה ל-Memcache יכול להגדיר Session id חדש. אבל לא יכול לקבל מידע על Sessions ID אם הוא לא יודע את ה-ID מראש, ב-Memcache אי אפשר לקבל רשימה של הפרטים שבזכרון.

MAORBARI 24-11-13 23:01

ציטוט:

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

לדוגמא - שימוש ב-Memcache בשביל Sessions מאפשר טיפול בסשנים במהירות שיא (במקום לטחון את המסד), אבל המצב הוא כזה שכל אחד עם גישה ל-Memcache יכול להגדיר Session id חדש. אבל לא יכול לקבל מידע על Sessions ID אם הוא לא יודע את ה-ID מראש, ב-Memcache אי אפשר לקבל רשימה של הפרטים שבזכרון.

זה עדיין חור אבטחה כי מישהו שרוצה לפרוץ מריץ סקריפט שעובד לפי הקונספט של סיישן id ופשוט בודק אם קיים ואם כן מציב עליו ערך חדש שיכול להוות באג ופרצת מערכת..
בקיצור memcached נועד ל vps ושרתים פרטיים שמכילים אתר אחד או כמה אתרים שנמצאים בבעלותך או באנשים קבועים אמינים ולא לרשת שיתופית..

יש תחליף לו? משהו אחר שעובד כמו שאני רוצה?

Kernel 25-11-13 09:05

מה אתה רוצה? בשביל מה אתה משתמש ב-Memcache?

אם אתה כ"כ מודאג שמישהו יזריק לך מידע לשרת, תוסיף Token ל-Session ותאמת את ה-Token כל פעם, אם ה-Token לא נכון, "הוזרקת" ותמחק את ה-Session.

MAORBARI 25-11-13 10:39

ציטוט:

נכתב במקור על ידי Kernel (פרסם 884249)
מה אתה רוצה? בשביל מה אתה משתמש ב-Memcache?

אם אתה כ"כ מודאג שמישהו יזריק לך מידע לשרת, תוסיף Token ל-Session ותאמת את ה-Token כל פעם, אם ה-Token לא נכון, "הוזרקת" ותמחק את ה-Session.

אני לא משתמש בזה על סיישנים אלא על משתמשים רגילים.. אז זה איך אפשר לקבוע תוקן למשתנה רגיל

Kernel 25-11-13 20:43

אתה מוסיף לכל משתנה ב-VALUE קוד מסויים שהסקריפט יודע לאמת אם הקוד תואם ל-KEY או לא.

אם תואם - תקין.
אם לא - ה-KEY הוזרק - אז מוחקים ויוצרים חדש.

MAORBARI 26-11-13 18:41

ציטוט:

נכתב במקור על ידי Kernel (פרסם 884266)
אתה מוסיף לכל משתנה ב-VALUE קוד מסויים שהסקריפט יודע לאמת אם הקוד תואם ל-KEY או לא.

אם תואם - תקין.
אם לא - ה-KEY הוזרק - אז מוחקים ויוצרים חדש.

תודה רבה.. אני פשוט מוסיף ב VALUE וב KEY את הכתובת דומיין ואז בודק אם ה VALUE = KEY = SERVER NAME

תודה רבה עובד מצויין!


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

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