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

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

OrPol 03-07-08 13:58

עזרונת קטנה בPHP
 
אני עובד עכשיו על פרוייקט דיי גדול.
במערכת אני מוסיף מודול של הודעות פרטיות.
הגישה שלי היא לעשות טבלה במסד הנתונים שהולכת ככה:
ID | SenderID | ReciverID | Status | Subject | Content
הקאץ' הוא שכל ההודעות האלו עוברות אישור מנהל (STATUS) כאשר 0 = לא מאושר ו- 1 = מאושר.
מומלץ או שיש אלטרנטיבה?

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


תודות.

BlueNosE 03-07-08 14:20

STATUS זה בסדר גמור. זה הכי חסכוני שהיית יכול לעשות.
בקשר לGD.. יש לי משהו שהכנתי פעם אבל יש 1000 מוכנים, פשוט תחפש php secure image gd

Kfir.G 03-07-08 14:57

ראה
http://recaptcha.net/

Tomer 03-07-08 15:01

ציטוט:

נכתב במקור על ידי Or Polaczek (פרסם 647340)
אני עובד עכשיו על פרוייקט דיי גדול.
במערכת אני מוסיף מודול של הודעות פרטיות.
הגישה שלי היא לעשות טבלה במסד הנתונים שהולכת ככה:
ID | SenderID | ReciverID | Status | Subject | Content
הקאץ' הוא שכל ההודעות האלו עוברות אישור מנהל (STATUS) כאשר 0 = לא מאושר ו- 1 = מאושר.
מומלץ או שיש אלטרנטיבה?

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


תודות.

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

הודעה שלא מאושרת אני יכול להמליץ לך למחוק מהמסד לאחר תקופה (Status=0) או אפילו מיידית.

מאחר והתרד עבר ממקום אחר, אני לא אנעל בגלל בקשת הקוד. חפש בגוגל לגבי CAPTCHA PHP - אני מאמין שתמצא.

OrPol 03-07-08 15:25

ציטוט:

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

הודעה שלא מאושרת אני יכול להמליץ לך למחוק מהמסד לאחר תקופה (Status=0) או אפילו מיידית.

מאחר והתרד עבר ממקום אחר, אני לא אנעל בגלל בקשת הקוד. חפש בגוגל לגבי CAPTCHA PHP - אני מאמין שתמצא.

כמובן. אני קורא בלוח בקרה את ההודעות הממתינות לאישור (SELECT * WHERE status='0')
ובתקנון לא רק שרשום שההודעות נבדקות אלא גם רשום מה אסור לכתוב בה"פ.
זה אתר שאמור להפריד בין שני סוגים של חברים, בלי שידעו מי עוד חבר באתר הזה. במידה והם רוצים ליצור קשר הם שולחים הודעה לשני אבל אסור להם לכתוב לו למשל "מה השם שלך" או "מה מס' הטלפון שלך". זאת מטרת הבדיקה...

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

OrPol 03-07-08 20:04

(יש אישור מתומר לדאבל פוסט ;) )
מישהו אגב יודע אם שאילתה כמו:
קוד:

SELECT * FROM $table WHERE * LIKE $search
מישהו יודע אם הכובית במקום שם הטור תעבוד? (פעם ראשונה אני עושה חיפוש במסד |מסמיק| )

Noam 03-07-08 20:11

http://www.ftf.co.il/gd.php
בהצלחה...

AlmogBaku 03-07-08 22:34

ציטוט:

נכתב במקור על ידי Or Polaczek (פרסם 647450)
(יש אישור מתומר לדאבל פוסט ;) )
מישהו אגב יודע אם שאילתה כמו:
קוד:

SELECT * FROM $table WHERE * LIKE $search
מישהו יודע אם הכובית במקום שם הטור תעבוד? (פעם ראשונה אני עושה חיפוש במסד |מסמיק| )

פשוט מאוד, במקום * רושמים % במקום = רושמים like.


דוגמא, אני רוצה למצוא את
hello
אני אקליד
PHP קוד:

SELECT FROM `tblWHRER `wordLIKE 'he%o'


עריכה:
אני לא חושב שיש מציאה לפי כל הטורים.

לגבי הקפצ'ה שהביאו פה- היא סופר חלשה, אני לא חושב שיש טעם. כל OCR פשוט עוקף אותה.

BlueNosE 04-07-08 00:08

ציטוט:

נכתב במקור על ידי Noam (פרסם 647451)

ממש לא יעיל.
לעבוד על TIME? ועוד לתת את הקוד מקור של זה?
זה יכול ליצור 2 בעיות. אחת, זמן העיבוד יכול להיות ארוך מספיק בשביל לעבור משניה X לשניה X+1.
בעיה שניה, כל בוט פשוט יעקוף את זה ע"י הרצה דומה בדיוק.

(עריכה - לא שמתי לב שזה עובד על HIDDEN אפילו לא מוצפן.. זה משנה את כל התגובה והופך הכל לפריץ בצורה מטורפת)

השיטה הטובה ביותר היא RANDOM SEED בעבודה מול מסד.
השיטה דומה לשיטת הסשנים מול מסד. מכניסים פרטים על המשתמש - IP, AGENT וכו', עם קוד. שולחים בGET קוד חד כיווני מוצפן ואז בודקים מה הערך שלו מול המסד.

אני לא ממליץ להשתמש בSESSION של PHP, מכיוון שהוא פריץ מאוד ואם מגלים את הSTRING שבתוכו אז בשניות אפשר לעלות על הקוד.

daMn 04-07-08 00:48

ציטוט:

נכתב במקור על ידי Noam (פרסם 647451)

אני לא יודע אם לצחוק או לבכות :\
אם אתם שם את הקוד בhidden אז אי אפשר להגיע אליו :-0

ולגבי BlueNose, אין טעם להסתבך, אפשר לעבוד עם SESSION, פשוט צריך לדעת להצפין ולקודד את הקוד ואז להצפין שוב באימות את הקוד ואת הקלט ואז נותר להשוות.

BlueNosE 04-07-08 01:18

ציטוט:

נכתב במקור על ידי daMn (פרסם 647530)
אני לא יודע אם לצחוק או לבכות :\
אם אתם שם את הקוד בhidden אז אי אפשר להגיע אליו :-0

ולגבי BlueNose, אין טעם להסתבך, אפשר לעבוד עם SESSION, פשוט צריך לדעת להצפין ולקודד את הקוד ואז להצפין שוב באימות את הקוד ואת הקלט ואז נותר להשוות.

תן לי דוגמא ואני אקטול אותה בקלות.

daMn 04-07-08 01:21

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 647533)
תן לי דוגמא ואני אקטול אותה בקלות.

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

BlueNosE 04-07-08 01:23

ציטוט:

נכתב במקור על ידי daMn (פרסם 647534)
אני עושה סתם הצפנה לסטרינג ופולט אותו..
אח"כ מקבל בPOST את הקלט של המשתמש ומצפין אותו עם כמה הצפנות וסטרינג קבוע ועושה אותו דבר לSESSION ומשווה.
אין לך מה לעשות עם זה.

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

(הכוונה היא - אם ראיתי שהקוד ABC1 מתאים להצפנה a0a0a011b, אני אשים בסשן ובINPUT כל פעם את הערכים האלו. אין לך איך להתמודד עם זה)

daMn 04-07-08 01:28

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 647535)
מה מונע ממני לעשות את זה פעם אחת בצורה אנושית, לפרוץ פעם אחת לסשן, להסתכל על התוכן בסשן ולערוך את הסשן כל פעם עם אותו קוד בINPUT?

(הכוונה היא - אם ראיתי שהקוד ABC1 מתאים להצפנה a0a0a011b, אני אשים בסשן ובINPUT כל פעם את הערכים האלו. אין לך איך להתמודד עם זה)

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

mlnn 04-07-08 01:58

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 647535)
מה מונע ממני לעשות את זה פעם אחת בצורה אנושית, לפרוץ פעם אחת לסשן, להסתכל על התוכן בסשן ולערוך את הסשן כל פעם עם אותו קוד בINPUT?

(הכוונה היא - אם ראיתי שהקוד ABC1 מתאים להצפנה a0a0a011b, אני אשים בסשן ובINPUT כל פעם את הערכים האלו. אין לך איך להתמודד עם זה)

לא תצטרך לפרוץ לשרת בשביל לקרוא את הסיישן? 8-*

Daniel 04-07-08 08:42

אפשר לשמור את הסשן ולשים אותה שוב ושוב אם לא עושים unset, בנוסף,
http://www.ftf.co.il/gd.php
הקוד הוא בתוך input, כל אחד יכול לגלות בקלות, וגם אם לא - זאת קאפטצ'ה ממש קלה לפריצה

OrPol 04-07-08 09:53

ציטוט:

נכתב במקור על ידי Baku (פרסם 647495)
פשוט מאוד, במקום * רושמים % במקום = רושמים like.


דוגמא, אני רוצה למצוא את
hello
אני אקליד
PHP קוד:

SELECT FROM `tblWHRER `wordLIKE 'he%o'

עריכה:
אני לא חושב שיש מציאה לפי כל הטורים.

לגבי הקפצ'ה שהביאו פה- היא סופר חלשה, אני לא חושב שיש טעם. כל OCR פשוט עוקף אותה.


אני מכיר את הקטע של %. הנה דוגמא לשאילתה כשאני מחפש בטור מסויים:
קוד:

SELECT * FROM users WHERE $row LIKE '%$search%'
השאלה היא אם אני יכול שהוא יחפש בכל הטורים. כלומר:
SELECT * FROM users WHERE * LIKE '%$search%'



ציטוט:

נכתב במקור על ידי MasterT (פרסם 647561)
אפשר לשמור את הסשן ולשים אותה שוב ושוב אם לא עושים unset, בנוסף,
http://www.ftf.co.il/gd.php
הקוד הוא בתוך input, כל אחד יכול לגלות בקלות, וגם אם לא - זאת קאפטצ'ה ממש קלה לפריצה

זה ב ד HIDDEN ואפילו לא מקוד -_- כל אחד יכול לעשות בויז'ואל בייסיק INET שיקרא את זה מההיידן ויציב באינפוט.

BlueNosE 04-07-08 12:53

ציטוט:

נכתב במקור על ידי daMn (פרסם 647536)
טוב, קח דוגמא..
בסטרינג שאני פולט יש הצפנה מסוימת, ובסשן הצפנה מסוימת(שונה) ככה שאין לך דרך לעלות על הבדלי ההצפנה ולהגיע מההצפנה הראשונה לשנייה.
אחרי שאני מקבל את הקלט אני מבצע עליו הצפנה מסוימת ועל הסשן הצפנה מסוימת(שונה) ומשווה.

שוב אני אשאל.
מה מפריע לי לערוך את התוכן של הסשן בשביל שיתאים לערך שיתקבל בINPUT? הבדל ההצפנה בכלל לא משנה פה.



אור,
יש דרך לעשות את זה ע"י הפונקציה SHOW COLUMNS FROM בMYSQL.

ככה היא עובדת:
PHP קוד:

$q mysql_query ("SHOW COLUMNS FROM tbl_name"); 

ככה בניתי, בין השאר, מגבה אוטומטי לאתרים שלי.

AlmogBaku 04-07-08 13:05

פתאום קלטתי גם את המקור.
לא רק שהקפצ'ה פשוטה אלא היא גם מאוד הזויה, התוצאה שלה נכתבת בהיידן? ובכלל על פי זמן?!



הגיע הזמן ללמוד מה זה קפצ'ה.
קפצ'ה זה לא סתם קוד יפה ומוזר. הרעיון הוא שרק בני אדם יוכלו לקרוא אותו- מכוון שבוטים אל יודעים לקרא תמונות.

כיום יש דבר שנקרא OCR - Optical character recognition*, הOCR יכול לקרא טקסט מתמונה, כף ךמשל במקום להקליד אפשר לכתוב ביד ולשלוח לוורד.

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

רובוט, ואפילו הפשוט ביותר יכיל OCR, לכן אם הקפצ'ה לא מסובכת אפילו בקצת- אין על מה לדבר.


**כיום יש תחליפים אפילו לקפצ'ת התווים.

* http://he.wikipedia.org/wiki/זיהוי_תווים_אופטי

OrPol 04-07-08 14:58

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 647631)
שוב אני אשאל.
מה מפריע לי לערוך את התוכן של הסשן בשביל שיתאים לערך שיתקבל בINPUT? הבדל ההצפנה בכלל לא משנה פה.



אור,
יש דרך לעשות את זה ע"י הפונקציה SHOW COLUMNS FROM בMYSQL.

ככה היא עובדת:
PHP קוד:

$q mysql_query ("SHOW COLUMNS FROM tbl_name"); 

ככה בניתי, בין השאר, מגבה אוטומטי לאתרים שלי.

אז אני יכול להשתמש בזה בצורה הבאה?:
קוד:

$q = mysql_query ("SHOW COLUMNS FROM tbl_name");
SELECT * WHERE $q LIKE %$search%


BlueNosE 04-07-08 17:34

לא.
הלימוד הכי טוב זה הניסיון - נסה ותראה מה מתקבל לך ע"י FETCHING והדפסה (PRINT_R).


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

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