Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

01.02.2008, 15:45
|
|
Познающий
Регистрация: 17.11.2007
Сообщений: 30
Провел на форуме: 107468
Репутация:
0
|
|
понимание тэгов в пхп
вопщем вопросец такой например забиваю я новость в бд указываю там например [img]сылка на картинку[/img] как сделать так чтобы при выводе этого сообщения появилась картинка?
|
|
|

01.02.2008, 15:52
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
Перед выводом проводить ответ бд через регулярки...
Что-то типа:
PHP код:
$img = preg_replace("#^(img|src)?[a-z0-9\.-]+\.[jpg|jpeg|gif]{1,3}$#", "<img src=\"\\1\" border='0'/>"
Только вот неуверен что моя регулярка верная =)
|
|
|

01.02.2008, 16:04
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
PHP код:
preg_match("#\[img\](.*)\[/img\]#", $stroka_iz_db, $arr);
echo "<img src=\"$arr[1]\">";
Последний раз редактировалось Piflit; 01.02.2008 в 16:51..
|
|
|

01.02.2008, 16:06
|
|
Постоянный
Регистрация: 11.11.2006
Сообщений: 595
Провел на форуме: 1845062
Репутация:
1079
|
|
PHP код:
$text=preg_replace('|\[img\](.*)\[/img\]|is','<img src="\1">',$db);
PS этот код небезопасен
|
|
|

01.02.2008, 16:16
|
|
Познавший АНТИЧАТ
Регистрация: 02.06.2006
Сообщений: 1,188
Провел на форуме: 6023777
Репутация:
2642
|
|
PHP код:
<?php
$text = '..........[img]http://forum.antichat.ru/antichat/pic/logo.gif[/img]..............';
$text = preg_replace('~\[img\](http(s)?://[^\x27\x22\x3E\x3C]+)\[/img\]~isU', '<img src="\\1" />', htmlspecialchars($text));
echo $text;
?>
Думаю это будет безопасно.
Последний раз редактировалось NOmeR1; 01.02.2008 в 16:46..
|
|
|

01.02.2008, 16:32
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
Nomer1 , гыгы)
PHP код:
<?php
$text = '..........[img]http://"\><a href="#" onmouseover="alert(\'xss\')"><b>x4x0r</b></a>[/img]..............';
$text = preg_replace('~\[img\](http(s)?://[^\x27\x22\x3E\x3C]+)\[/img\]~isU', '<img src="\\1" />', $text);
echo $text;
?>
|
|
|

01.02.2008, 17:32
|
|
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме: 3493315
Репутация:
1228
|
|
по идеи так надежно
PHP код:
<?
$text='[img]http://abcde"fghig.fih/sd[/img]';
$text = preg_replace('/\[img\]http:\/\/(.*)\[\/img\]/e', "'<img src=\"http://'.str_replace('\"', '%22', '$1').'\">';", $text);
echo $text;
?>
|
|
|

01.02.2008, 17:39
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
nc.STRIEM,
PHP код:
<?
$text='[img]"\'/><a href=\'xaxa\' onmouseover=\'alert(/xss/)\'>XSS</a>[/img]';
$text = preg_replace('/\[img\]http:\/\/(.*)\[\/img\]/e', "'<img src=\"http://'.str_replace('\"', '%22', '$1').'\">';", $text);
echo $text;
?>
Я вот думаю...мне написать код или вы еще помучаетесь)))
|
|
|

01.02.2008, 17:43
|
|
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме: 3493315
Репутация:
1228
|
|
в данном коде что ты привел, XSS срабатывает не из за тэга [img], а тут идет обсуждение тэгов img . Обрабатываю строку перед передачей ее регулярке (или в самой регулярке, но это есле она одна) функцией htmlspecialchars() и все будет ок
в данном примере и банальный <script>alert()</script> сработает, и без всяких OnMouseOver итд..
Последний раз редактировалось nc.STRIEM; 01.02.2008 в 17:48..
|
|
|

01.02.2008, 17:50
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
Я привел этот код потому как ты написал что это надежно
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|