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

הוסטס - פורום אחסון האתרים הגדול בישראל (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=57445)

Kfir.G 04-12-07 17:16

[PHP] טיפול קלט
 
עריכה:
הנושא היה אמור להיות טיפול בקלט :P
שלום,
יש לי תופס שבו המשתמש שולח מידע ואני מעביר אותו ככה
PHP קוד:

$content$_POST['msg'];
$contenthtml_entity_decode($content);
$tags    "<p><h1><font><ol><ul><li><hr>"
        
."<blockquote><a><img><embed><strong>"
        
."<em><u><strike><sup><sub>";
$contentstrip_tags($content,$tags); 

ובכל זאת משתמשים מצליחים להחדיר תגים שהstrip_tags אמור להוריד... מה עושים?
תודה מראש
כפיר

Meir 04-12-07 17:29

התיאור פה מתאים לבעיה שלך אני חושב: http://marc.info/?l=bugtraq&m=108981589117423.

DanielS 04-12-07 17:47

שוב טעות נפוצה במקום לאפשר הכל ולחסום חלק.
תחסום הכל ותאפשר חלק.
או אם אתה רוצה לחסום את כל הHTML תשתמש בhtmlspecialchars()

Kfir.G 04-12-07 17:47

ציטוט:

נכתב במקור על ידי Meir (פרסם 586902)
התיאור פה מתאים לבעיה שלך אני חושב: http://marc.info/?l=bugtraq&m=108981589117423.

יכול להיות שככה משתמשים מצליחים לעקוף את זה ויכול להיות שלא...
בכל מקרה לא ממש הצלחתי למצוא את הפתרון עצמו לבעיה בעמוד הזה... ממה שהבנתי זאת
http://security.e-matters.de/gpg_key.asc
אמורה להיות הצפנה של הפתרון אבל לא ממש הבנתי איך לבטל את ההצפנה...
בכל מקרה תודה על העזרה ואני אשמח לשמוע הצעות נוספות לפתרון :)

ציטוט:

נכתב במקור על ידי DanielS (פרסם 586912)
שוב טעות נפוצה במקום לאפשר הכל ולחסום חלק.
תחסום הכל ותאפשר חלק.
או אם אתה רוצה לחסום את כל הHTML תשתמש בhtmlspecialchars()

במקרה שלא שמת לב אני חסמתי הכל ואפשרתי חלק... רשימת התגים בTAGS אלו הם התגים המותרים! לשימוש כל השאר אסורים...

Meir 04-12-07 18:12

תנסה את זה:

PHP קוד:

<?php
$string 
'test tag <script> and <p>';

function 
check_tag($tag) {
    if (
in_array(str_replace('/'''$tag), array('p''b''hr''a'))) {
        return 
'<'.$tag.'>';
    }
    return 
false;
}

echo 
preg_replace('/<(.*?)>/ie''check_tag("\\1")'$string);
?>


Kfir.G 04-12-07 18:57

ציטוט:

נכתב במקור על ידי Meir (פרסם 586923)
תנסה את זה:

PHP קוד:

<?php
$string 
'test tag <script> and <p>';

function 
check_tag($tag) {
    if (
in_array(str_replace('/'''$tag), array('p''b''hr''a'))) {
        return 
'<'.$tag.'>';
    }
    return 
false;
}

echo 
preg_replace('/<(.*?)>/ie''check_tag("\\1")'$string);
?>


לא עובד לי...
ד"א מה בדיוק עושה \\1?

Meir 04-12-07 19:13

מעביר את התוצאה מהביטוי הרגולרי לפונקציה, שים לב שהפונקציה מאפשרת רק את התגים שנמצאים במערך בתוך הפונקציה delete כלומר רק את: p, b, hr וa.

ותוסיף את התיקון הבא:

PHP קוד:

str_replace(array('/'' '), ''$tag

כי יש תגים שנוהגים להכניס בהם רווח כמו hr.

Kfir.G 04-12-07 20:32

ציטוט:

נכתב במקור על ידי Meir (פרסם 586943)
מעביר את התוצאה מהביטוי הרגולרי לפונקציה, שים לב שהפונקציה מאפשרת רק את התגים שנמצאים במערך בתוך הפונקציה delete כלומר רק את: p, b, hr וa.

ותוסיף את התיקון הבא:

PHP קוד:

str_replace(array('/'' '), ''$tag

כי יש תגים שנוהגים להכניס בהם רווח כמו hr.

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

Daniel 04-12-07 21:12

ברגע שאתה מאפשר תג אחד-הכל פרוץ. תשתמש ב-htmlspecialchars.

Meir 04-12-07 21:28

ציטוט:

נכתב במקור על ידי kfir_dnd (פרסם 586967)
בכל מקרה הפונקציה שלך מורידה את הכל חוץ מ <שם התג> וזה לא מה שאני צריך... אני צריך שאם זה תג מאושר הכל ישאר...

http://lives.co.il/kfir.php

Kfir.G 04-12-07 21:36

ציטוט:

נכתב במקור על ידי MasterT (פרסם 586996)
ברגע שאתה מאפשר תג אחד-הכל פרוץ. תשתמש ב-htmlspecialchars.

אז מה אני אמור לעשות כשאני משתמש בwyiwyg שכל משתמש יכול להשתמש בו?

ציטוט:

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

עובד :P נשים את זה באתר ונראה אם יעקפו גם את זה או לא...

בכל מקרה אני אשמח לשמוע תשובה לגבי מה ששאלתי את דניאל ולכן אני מבקש לא לנעול את הנושא :)

Daniel 04-12-07 22:04

תשים את זה, תשלח לי ה"פ, ואני אעקוף. כל הקטע של WYSIWYG הוא באמת דיי פרוץ..

בכל מקרה, תשים את זה, ושלח לי ה"פ.

Tomer 04-12-07 22:14

ציטוט:

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

לא תקין כששמים תג a

<a href="http://www">dd</a> מחזיר קישור:

http://lives.co.il/%5C%22http://www%5C%22

Meir 04-12-07 22:48

^ אני מודע לזה כנראה השרת מוסיף סלשים אוטומטית למרות שכיביתי את הmagic quotes.

mayden 04-12-07 23:23

ציטוט:

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

לא קשור כ"כ לנושא,
תגיד איך עשית שזה יהיה בצבע? {אני כמעט בטוח שזה לא אתה עשית את הצבעים..}, דרך איזו תוכנה או משהו?

ידוע לי שאפשר לשמור דרך phps ואז זה יהיה במן צבע כזה אבל הקובץ לא ירוץ כPHP.

Meir 04-12-07 23:26

פונקציה מובנת של הPHP:
http://il2.php.net/manual/en/functio...ght-string.php.

mayden 04-12-07 23:44

ציטוט:

נכתב במקור על ידי Meir (פרסם 587085)
פונקציה מובנת של הPHP:
http://il2.php.net/manual/en/functio...ht-string.php.

תודה |לב|


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

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