Вы не зашли.
а можно на русском а то на англ неочень хочется читать
Кодер
Код:
span style="color: #0000BB"><?php echo highlight_string('<? I\'m govnoscript=) ?>'); ?> |
Отредактировано Gemorroj (2009.05.10 15:03)
Gemorroj, а как на этом форуме сделано? Можешь написать функцию?
скачай исходники и посмотри) там много всего.
Я с телефона.. Можешь выложить только тот файл где это сделано?
блин, если строку прогнать через htmlspecialchars(), то выводит немного не то, чего хотелось бы ))) а если не обработать, то как же XSS?
"немного не то" - это что?
ну <> показываются букафками )))
если показывается буквами, то значит у тебя уже переменная отфильтрована.
дык это я и сам знаю

а если не отфильтровать, то ведь получается xss-дырка. Или я чето пропустил?
у тебя переменная отфильтрована 2 раза.
#16.
JInn
Off
(2)
Участник
2009.06.21 06:06
Вот еще по поводу фильтрации переменных
echo '<a href="text.php?id='.$_GET['id'].'&str=4&page='.$_GET['page'].'">[100]</a>';
Вот такое $_GET['id'] и $_GET['page'] надо фильтровать? На хвабе говорят что надо, а с моей точки зрения если юзер гетом передаст xss то увидит этот код только он. Это конечно при условии что я правильно понимаю работу пхп...
Как все таки сложно быть ботом...
да, все верно. но злоумышленник может сформировать такую ссылку на удаленном сайте и обманом заставить пользователя по ней перейти. ну а в нефильтрованные переменные можно напихать JS'ов всяких уже.
#18.
JInn
Off
(2)
Участник
2009.06.21 09:09
В общем фильтровать надо, я так понял, htmlspecialchars хватит для фильтрации?
Как все таки сложно быть ботом...
вернемся к подсветке )) не сильно много говнокода?
Код:
span style="color: #0000BB"><?phpfunction php_code_tags($arg){$arg[0] = htmlspecialchars_decode($arg[0], ENT_QUOTES);return '<div style="background-color: beige">'. preg_replace("/\[php\](.*?)\[\/php\]/is", "<b>PHP:</b>\\1", highlight_string($arg[0], true)) .'</div>';}function bb_code($message){$message = preg_replace_callback("/\[php\](.*?)\[\/php\]/is", "php_code_tags", $message); # еще куча тегов....}// тут ересь всякая$text = htmlentities($text, ENT_QUOTES, 'UTF-8');$text = bb_code($text);?> |
да нормально. только желательно использовать не \\1, а $1