דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
E

eido

@eido
אודות
פוסטים
112
נושאים
9
שיתופים
0
קבוצות
0
עוקבים
0
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • בדיקת קלט בשני עמודים שהאחד מעביר ארגומנטים לשני - האם כפולה? וצורת עובדה נכונה
    E eido

    אבל עד כמה שהבנתי זה גם בערך הצורה של MVC או Layered Architecture, לא?

    תכנות

  • בדיקת קלט בשני עמודים שהאחד מעביר ארגומנטים לשני - האם כפולה? וצורת עובדה נכונה
    E eido

    די כמו MVC או Layered Architecture

    תכנות

  • בדיקת קלט בשני עמודים שהאחד מעביר ארגומנטים לשני - האם כפולה? וצורת עובדה נכונה
    E eido

    אנסה להסביר.
    בהתחלה (אני מדבר על פרויקט קודם, שממנו התחלתי ככה לעבוד) הקוד היה רק העמוד שתכל'ס מבצע דברים, בדוגמא שלנו העמוד deleteAds.php, כשניסיתי לגשת אליו מהדפדפן כדי להשתמש בו (לדעתי במקור הקובץ שלף מידע מהמסד נתונים) קיבלתי שגיאה, בדיקה העלתה שהשגיאה היא שצריך לתת הרשאות גבוהות לuser (הרי בשביל לגשת למסד נתונים צריך לפתוח user עם סיסמא, לא מספיק רק השם של המסד נתונים), ולהשתמש ב% כדי שיוכלו לגשת למסד נתונים גם מחוץ לשרת.
    זה לא מצא חן בעיני אז החלטתי להפריד בין המקום שיש למשתמש קצה גישה אליו למקום שמבצע דברים, כך לדעתי הרווחתי 2 דברים:

    1. אני לא צריך להשתמש ב%, יש למסד נתונים גישה רק מהשרת עצמו.
    2. יש פחות סיכוי לנזק לשרת, כי הקובץ שהמשתמש מגיע אליו לא יודע או יכול לעשות כלום, אין מצב שמשחילים לי DROP ALL TABLE ושאר מרעין בישין. וכן כשהמשתמש הזדוני מכיר את הקובץ שפועל בשרת ויכול לגיע אליו, לדעתי כבר יש לו רגל בפנים, כשהוא מכיר רק את הקובץ המתווך, הוא צעד אחד אחורה.

    מקווה שיותר מובן.

    תכנות

  • בדיקת קלט בשני עמודים שהאחד מעביר ארגומנטים לשני - האם כפולה? וצורת עובדה נכונה
    E eido

    ערכתי את ההודעה הקודמת

    לדוגמא, הנה 2 קבצים (חלקיים לא צריך את כל הקוד הארוך).
    זה המתווך -
    main.php
    זה המבצע -
    deleteAds.php

    אני מכיר מחלקות, אבל אני לא רואה איך זה עוזר להפרדת המשתמש מהלוגיקה הפנימית. או שמחלקות בPHP זה שונה מC#?

    תכנות

  • בדיקת קלט בשני עמודים שהאחד מעביר ארגומנטים לשני - האם כפולה? וצורת עובדה נכונה
    E eido

    @dovid לא מכיר תורות מוכנות, אם יש מושגי בסיס שאוכל לחפש אשמח לכמה.
    השיקול שלי הוא, שהקוד מורץ בתור API, ואם כל אחד יכול לגשת לAPI בעצמו, זה יצא שגם אצטרך לתת הרשאות גישה למסד נתונים לכל אחד, לא? זה בעצם הסיבה שמלכתחילה התחלתי עם זה, ניסיתי לגשת ישר לAPI וקיבלתי שגיאה של גישה לא מורשית למסד הנתונים, אז אם זה מגיע דרך עמוד מתווך. א. אף אחד לא יודע מה הנתיב של העמוד שעושה בפועל, וככה לא יצליחו לשחק איתו יותר מידי (כמובן שאם יריצו סריקה על השרת יוכלו למצוא הכל, בכל זאת א"א למנוע הכל), וגם אם כן ימצאו עושים עליו הגבלת גישה רק מהIP של השרת עצמו, כך מונעים התקפות עליו ישירות (ברעיון, לא ניסיתי). ב. הגישה היא מהשרת ולא מהמשתמש, ככה לא צריך לפתוח הרשאות מיותרות.

    תכנות

  • בדיקת קלט בשני עמודים שהאחד מעביר ארגומנטים לשני - האם כפולה? וצורת עובדה נכונה
    E eido

    מבחינתי זה נטו בשביל אבטחה.

    איזה מבנה לא יעיל? של העמוד חיצוני שמנתב או זה שיש בדיקות בשניהם?

    תכנות

  • בדיקת קלט בשני עמודים שהאחד מעביר ארגומנטים לשני - האם כפולה? וצורת עובדה נכונה
    E eido

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

    תכנות

  • באג: בינה מלאכותית, או לשבור את הראש חצי שעה
    E eido

    @avi-rz אני חושב שכל מה שכתבת זה טוב ויפה, פרט לעובדה שאני לא מכיר בינה מלאכותית שיודעת לעשות דברים כמו שצריך.
    משהו נקודתי - כן, אבל מערכת מורכבת ממש לא. וגם הנקודתי זה רק משהו קטן, הבינה מלאכותית פשוט בנויה ככה, אני לא מאמין שיבוא יום וזה יהיה במקום מתכנת.
    אני נעזר המון בבינה מלאכותית, מצד אחד זה מקל עלי כי אני מתעסק בשפה שאני לא מכיר, ולא כ"כ רוצה ללמוד לעומק. ומצד שני, אני שורף המון זמן על טעויות של הבינה מלאכותית.
    בקיצור, זה כלי עזר מצוין, לא מעבר! חשוב שיזכרו את זה!

    תכנות

  • ניהול מודעות בSQL
    E eido

    זו הצעה של GPT

    SELECT M.*
    FROM Modaot M
    WHERE NOT EXISTS (
        SELECT 1
        FROM ModhaToPhone MT
        WHERE MT.ModhaId = M.Id
          AND MT.Phone = ?
    )
    AND EXISTS (
        SELECT 1
        FROM UserPreference PR
        WHERE PR.phone = ?
          AND (M.city   = PR.city   OR PR.city   IS NULL)
          AND (M.region = PR.region OR PR.region IS NULL)
          AND (M.room   = PR.room   OR PR.room IS NULL)
    )
    

    מה אומרים?

    תכנות

  • באג: בינה מלאכותית, או לשבור את הראש חצי שעה
    E eido

    @Mordechai-0 מסכים איתך.
    אני לא יודע מה לגבי 100,000 שורות קוד, אני לא חושב שהגעתי לזה אי פעם... אף פעם לא הוצרכתי להגיע לכזה דבר, וגם אני די מחלק את זה לקבצים קטנים לדוגמא עכשיו אני בונה מערכת קטנה וחמודה שבה אני צריך לנהל לפחות 3 מסדי נתונים שונים, בכל אחד מהם צריך לקרוא/למחוק/לעדכן/להוסיף שורות למסד נתונים ולמצוא התאמות. אני לא יודע מה מקובל לעשות בתעשיה, אבל לכל פעולה כזו עשיתי קובץ נפרד (PHP) מה שיצר לי כרגע 10 קבצים רק בשביל פעולות אלו חוץ מקובץ לפונקציות עזר וקובץ לקבצי הגדרות. כך שהכי הרבה הגעתי ל150 שורות. בתוכנה אחרת בC# הגעתי ל940 שורות שזה המון בעיני, וגם את זה אפשר בקלות מאוד לחלק לחלקים שהוא יכול לבדוק.

    לענינינו, במקרה דנן,לדעתי די קל לבודד את החלקים שיכולים להיות חשודים.

    אבל אני מסכים, וגם כתבתי בהודעה הקודמת, צריך להזהר בשימוש בבינה מלאכותית.

    תכנות

  • ניהול מודעות בSQL
    E eido

    הענין הוא שיכולות להיות כמה העדפות, כמו בדוגמא, דירה בירושלים 4 חדרים ובביתר 3 חדרים, זה שתי שורות שונות במסד נתונים.

    תכנות

  • באג מוזר עם גלילה באפליקציית אנדרואיד עם WebView
    E eido

    אם מעניינת אותך תשובת gpt תוכל לראות כאן https://chatgpt.com/s/t_68dafdd51e6081919532a3ac6416e08c
    כמובן הוא מחרטט לפעמים אז...

    תכנות

  • ניהול מודעות בSQL
    E eido

    ז"א שאני קודם עושה בקוד

    SELECT * FROM ********** WHERE phone = ?
    

    ואז לפי ההעדפות שקבלתי אני עושה AND, לדוגמא אם ההעדפות נשמרות בresult והם דירה בירושלים בשכונה X 4 חדרים ודירה בביתר עילית 3 חדרים אז אני עושה:

    SELECT *
    FROM Modaot
    WHERE NOT EXISTS (
        SELECT 1
        FROM ModhaToPhone
        WHERE ModhaToPhone.ModhaId = Modaot.Id
          AND ModhaToPhone.Phone = ?
    )
    AND (
           (Modaot.city = ? AND Modaot.region = ? AND Modaot.room = ?)
        OR (Modaot.city = ? AND Modaot.room = ?)
    )
    

    ?

    תכנות

  • באג: בינה מלאכותית, או לשבור את הראש חצי שעה
    E eido

    @dovid כתב בנתקלתי אתמול בבאג חמוד:

    @eido כתב בנתקלתי אתמול בבאג חמוד:

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

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

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

    כאן לדעתי זה שונה, אני לא מתכנת X10 וגם לא שואף לשם, וכל פעם שאני מסיים לכתוב קוד אני נותן לבינה מלאכותית אחת או יותר לעבור על הקוד, אולי פספסתי משהו, אולי טעיתי בהקלדת ושימוש במשתנה (בPHP יש 0 אכיפה ואזהרה לגבי זה אתה יכול לטעות באות אחת ואף אחד לא ידע, בשונה משפות אחרות), או כל בעיה אחרת. אם יש בעיה היא מעדכנת אותי (לפעמים מעדכנת סתם גם כשאין...), ומזה לומדים - אם יש מה ללמוד וזו לא טעות הקלדה - יודעים להבא לא לעשות ככה.
    מצד שני, לשאול אותה מראש על כל דבר איך לעשות זה פחות טוב כי ככה באמת לא לומדים, אא"כ שואלים וחופרים מה כל דבר אומר, וגם אז, כמו שאתה אומר לא רגילים לחשוב על דרך פעולה בעצמך שזה גרוע מאוד בעיני.

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

    תכנות

  • ניהול מודעות בSQL
    E eido

    טוב, יש עוד פרט.
    אני צריך גם שיהיה סינון ולא כל ההודעות יושמעו, יש עוד טבלה שבה ההעדפוץ של כל אחד, לפי עיר/עיר+שכונה/עיר+שכונה+רחוב.
    איך משלבים את כל הסיפור הזה ביחד?
    יש לי קוד מושך את כל ההעדפות של המאזין

    SELECT * FROM ********** WHERE phone = ?
    

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

    האם צריך לקרוא לזה ולפי מה שמתקבל לבנות שאילתות או שיש דרך לשלב הכל בבת אחת.

    תכנות

  • באג: בינה מלאכותית, או לשבור את הראש חצי שעה
    E eido

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

    תכנות

  • חיבור וניתוק נכון למסד נתונים
    E eido

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

    תכנות

  • חיבור וניתוק נכון למסד נתונים
    E eido

    וואי, זה מעיק כל הענין של אישורי הפוסטים.
    מתי מסיימים עם זה?

    תכנות

  • חיבור וניתוק נכון למסד נתונים
    E eido

    תודה.
    אז אם אני מבין נכון, כל עוד זה לא מערכת גדולה ומורכבת, הסגירה הזו בסדר?

    תכנות

  • חיבור וניתוק נכון למסד נתונים
    E eido

    קיבלתי.
    ולעצם הענין, האם יש טעם בטענה שסגירה כזו:
    if (isset($stmt)) {
    $stmt->close();
    }
    $conn->close();
    עלולה להוות בעיה או לא?

    תכנות
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 5 / 6
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום