לגבי שימוש בשפת שרת (php)

הנושא בפורום 'קהילת מפתחי אתרי אינטרט' פורסם ע"י איש פשוט, ‏6/3/19.

  1. איש פשוט

    איש פשוט משתמש רשום

    הצטרף:
    ‏12/7/12
    הודעות:
    297
    תודות :
    4
    נקודות:
    19
    שלום.
    אני מתכנת בjs בעיקר
    ויש לי 2 שאלות לגבי השימוש שלי בphp..

    1. אני משתמש בphp ומס פקודות sql בשביל להעביר jsonים לDB ובשביל לשלוף נתונים מהDB ולקבל אותם בjs כjson.
    בעקרון מבחינתי בזה יכול להסתכם השימוש בphp ואת שאר הבדיקות והמוניפולציות על הjson אני יכול לבצע בעזרת הjs..
    אלו דברים נוספים בד"כ אצטרך (בשביל בטיחות וכד') לבצע בשרת כלומר בphp?
    2. אם השימוש שלי בphp מסתכם בנ"ל האם שימוש בframework php כגון laravel יכול להוסיף לי? אם כן מה?

    תודה רבה!
     
  2. למדן וידען

    למדן וידען משתמש סופר מקצוען פיתוח / אפיון / עיצוב אתרים עיצוב גרפי

    הצטרף:
    ‏24/8/16
    הודעות:
    960
    תודות :
    1,382
    נקודות:
    134
    עיסוק:
    תכנות, טכנאות, יעוץ פרויקטי מחשוב
    בטח זה יכול להוסיף לך!
    המון המון כאב ראש.

    קיצר, לא שימושי לך בכלל.
     
    איש פשוט ו-מ.ש. אוהבים את זה.
  3. איש פשוט

    איש פשוט משתמש רשום

    הצטרף:
    ‏12/7/12
    הודעות:
    297
    תודות :
    4
    נקודות:
    19
    אני מבין שענית על השאלה השנייה.. תודה רבה!
    אשמח לשמוע תשובות על שאר השאלות או עוד דעות.
    אגב, צורת העבודה שאני מתאר (שמתכנת js ישתמש בphp רק לתקשורת עם הDB) היא לגיטימית ומקצועית?
     
    נערך לאחרונה ב: ‏6/3/19
  4. UU

    UU משתמש סופר מקצוען פיתוח / אפיון / עיצוב אתרים

    הצטרף:
    ‏10/10/18
    הודעות:
    895
    תודות :
    2,110
    נקודות:
    109
    לגבי השאלה הראשונה - מה שנוח לך ואתה יודע - זה טוב לבצע
    א-ב-ל
    ברגע שיש שליחת נתונים מהקליינט לסרבר וכל מה שה-PHP עושה זה רק להכניס את זה ל-DB - יכול האקר פשוט לנטרל את ה-JS שלך או לעבוד עליו ולשלוח לך פקודות ל-DB שימחקו אותו לגמרי למשל
    לכן בדיקות תקינות על הקלט חייבות להתבצע גם בצד השרת.
    מלבד זאת - זה תקין ונורמאלי, ואפילו "הולך" היום יותר (לדוגמא אנגולר עושה משהו מעיין זה)
    לגבי השאלה השניה - עדיף בלי שום ספריה, חבל על הכוחות שלך. זה יסבך אותך. רק תצטרך לדאוג לכלכ מיני ענייני אבטחה בקלט (לדוגמא שלא נכנס שם HTML שחותך את הטקסט או אפילו מרכאות פשוטות)
    בהצלחה
     
    איש פשוט אוהב/ת את זה.
  5. אפרת19

    אפרת19 משתמש רשום

    הצטרף:
    ‏29/1/18
    הודעות:
    19
    תודות :
    70
    נקודות:
    14
    אני לא מסכימה עם השיטה
    היא מתעלמת מהעקרונות הכי חשובים בWEB
    1. חורי אבטחה-
    אתר שקוד השרת שלו לא תפור כמו שצריך, קודם כל חושף את הDB שלו לכל מיני צרות כמו SQL injections, וגם לסתם התקפות לא מתוחכמות כמו מניעת שירות (denial of service) סתם כי השרת לא מוגן מספיק מבוטים שטוחנים אותו, וקורס מעודף טראפיק.
    בשלב הוולידציה- התפקיד היחיד של הקליינט זה שיפור מהירות- לחסוך פניות לשרת במקרה של שגיאה. זה לא תחליף לוולידציה בסרבר. כל מי שמבין טיפה בWEB עוקף את הקליינט בדקה. אני לא אומרת שהשרת חסין באגים, אבל הוא שכבת הגנה הרבה יותר משמעותית.
    חוצמיזה- להזכירך- קוד הJS שלך רץ במחשב של המשתמש, ונגיש לו לחלוטין. אתה לא באמת מעוניין לחשוף לו את הלוגיקה שלך.

    2. חווית משתמש גרועה-
    הקליינט עושה רק את מה שהסרבר לא יכול לעשות. הוא לעולם לא מחליף אותו.
    אין מה להשוות בין המהירות והעוצמה של PHP שרץ על מכונת שרת מול הדפדפן המסכן של הלקוח שלך. השרת פשוט עושה הכל הרבה יותר מהר.
    לפי RAIL MODEL, אתר אינטרנט מודרני אמור להטען תוך 1000ms ולהגיב למשתמש (למשל אחרי לחיצה על כפתור) תוך 100ms. כדי להתקרב למספרים כאלה, אתה צריך לחשוב על כל שורה בJS- אם היא חייבת להיות שם או שהלוגיקה יכולה לשבת בשרת.

    laravel פריימוורק מדהים ומודרני, חוסם SQL injections וחורי אבטחה נוספים כברירת מחדל, ובאופן כללי עושה בשבילך המון עבודה. תשקיע זמן ללמוד אותו, הוא יחזיר לך את הזמן הזה בכמויות העבודה שהוא חוסך.
     
    נערך לאחרונה ב: ‏7/3/19
    מוטי ברנט, UU ו-איש פשוט אוהבים את זה.
  6. UU

    UU משתמש סופר מקצוען פיתוח / אפיון / עיצוב אתרים

    הצטרף:
    ‏10/10/18
    הודעות:
    895
    תודות :
    2,110
    נקודות:
    109
    מניסיון - מאד קשה ללמידה, בפרט כשאין רקע.
    יתכן שנכון להשקיע בלימוד שלו - מומלץלמצוא מישהו שמכיר את הספריה או לפחות את התחום ולא ללמוד לבד.
    מה לגבי codeignator? עד כמה שידוע לי הוא גם כן טוב מבחינת אבטחה, ויותר קל ללמידה (ועדיין מצריך אותה)
     
  7. s976

    s976 משתמש מקצוען פיתוח / אפיון / עיצוב אתרים

    הצטרף:
    ‏18/1/12
    הודעות:
    2,333
    תודות :
    173
    נקודות:
    94
    עם מה את לא מסכימה?
    הוא רוצה לעשות את כל הלוגיקה בצד לקוח, ובשרת להשתמש רק לשמירה לDB. לגיטימי לחלוטין. וכמובן, יכול להיות תלוי בסוג פרויקט.

    מה המקור לקביעה מעניינת זו?

    למה הדפדפן של הלקוח מסכן? הדפדפן של הלקוח משתמש במעבד של המחשב, ובדרך כלל יש לו ביצועים לא רעים. לא ברור גם בייחס לאיזה שרת את משווה...
    צריך גם לקחת בחשבון שהשרת הוא אחד, ואילו משתמשים הם רבים. יש לי פרויקט עם שרת ב5 דולר. ויש כ50 גולשים בו זמנית. ברור שאני מעדיף לאלץ את הדפדפנים שלהם לעבוד במקום לגרום לשרת לקרוס.
    מלבד זאת, חלק גדול מהמשימות אינן דורשות משאבי מעבד משמעותיים. לעומת זאת פנייה לשרת תמיד אורכת זמן. למשל, אם צריכים לעשות איזה autocomplete על סמך מערך מ-100 (ולמעשה גם הרבה יותר) אלמנטים, אם נטעין את המערך כולו ללקוח, ושם נעשה את החיפוש, הכל יעבוד חלק עם חוויית משתמש מעולה. לעומת זאת, אם בהקלקת כל אות נפנה לשרת - זה יעבוד בצורה צולעת גם אם מדובר בשרת מאוד חזק.

    בקיצור, לעניות דעתי אין בזה שום כלל גורף.
     
    איש פשוט, Avi300 ו-mordy אוהבים את זה.
  8. Avi300

    Avi300 משתמש מקצוען

    הצטרף:
    ‏9/10/16
    הודעות:
    180
    תודות :
    148
    נקודות:
    49
    בתכלס, אם הידע שלך הוא js, תעבוד עם NodeJS. יש ספריות מעולות ונוחות לעבודה עם db. ולדיציה וכו'

    לדעתי להשקיע זמן בלימוד של פריימוורק בphp זה בזבוז.
     
    מוטי ברנט, איש פשוט ו-UU אוהבים את זה.
  9. אפרת19

    אפרת19 משתמש רשום

    הצטרף:
    ‏29/1/18
    הודעות:
    19
    תודות :
    70
    נקודות:
    14
    https://javax0.wordpress.com/2014/11/19/do-all-business-login-on-the-client-using-javascript/

    https://www.quora.com/Where-should-...web-application-on-client-side-or-server-side

    השקעה בשרת טוב תחזיר את עצמה במהירות של האתר וממילא גם בשביעות רצון של משתמשים ובדרוג בגוגל. אתה חי בעולם שבו 47% מהמשתמשים מצפים מאתר להטען תוך 2 שניות, ו40% עוזבים אותו אם הוא לא נטען תוך 3 שניות. למרות זאת, רמת הביצועים הממוצעת של המכשירים (3-4 GHZ בPC,
    1-2 בטלפון) עדיין לא מספיקה בשביל לסמוך עליהם שיעשו את העבודה:

    https://www.websitemagazine.com/blog/5-reasons-visitors-leave-your-website

    https://www.thinkwithgoogle.com/data/average-mobile-page-load-time/

    ואולי לא. אם 5 דקות באתר שלך יגמרו לי את החבילה בטלפון, לא תראה אותי שם הרבה.:(

    אין ספק שלכל שפת שרת יש יתרונות וחסרונות, אבל ללמוד להשתמש בפריימוורק איכותי בשפה שבה השרת שלו כתוב יביא לו רק רווח, מבחינת איכות הקוד, האבטחה וקלות התחזוקה.
    לPHP, כמו לכל שפת שרת כמעט, יש חבילות מצוינות לעבודה עם כל דבר. NODEJS לא המציאו את רעיון הספריות....;)
     
    איש פשוט אוהב/ת את זה.
  10. s976

    s976 משתמש מקצוען פיתוח / אפיון / עיצוב אתרים

    הצטרף:
    ‏18/1/12
    הודעות:
    2,333
    תודות :
    173
    נקודות:
    94
    לא הצלחתי להבין מה רצית בשני המקורות שהבאת. מחברי שני המאמרים לא רואים שום בעיה בהעברת הלוגיה לצד הלקוח, אם לא שיש עם זה איזו בעיה ספציפית (למשל, בפרויקטים שלא רוצים לחשוף אל הלוגיה שלנו).
    (ואני כבר לא מדבר על זה שזה סתם מאמרים עלומי שם)
     
    איש פשוט אוהב/ת את זה.