|
|
|
| а какой функцией преобразовывать текст взятый из БД перед выводом в окне браузера | |
|
|
|
|
|
|
|
для: Bvz
(11.04.2010 в 11:47)
| | nl2br(htmlspecialchars())
конечно, если это обычный плоский текст (а не html-код) | |
|
|
|
|
|
|
|
для: Trianon
(11.04.2010 в 11:49)
| | а если html код? | |
|
|
|
|
|
|
|
для: Bvz
(11.04.2010 в 11:55)
| | если Вы html-код выводите в поток html-кода, естественно, никаких преобразований делать не нужно.
Поймите, тут важно не то, из базы данные или еще откуда.
Тут важно какого типа данные и какой тип контента формируемой страницы.
Если они не совпадают, одно необходимо преобразовать к другому. | |
|
|
|
|
|
|
|
для: Trianon
(11.04.2010 в 12:15)
| | а как же вопрос безопасности? | |
|
|
|
|
|
|
|
для: Bvz
(11.04.2010 в 12:45)
| | какой вопрос?
Хотя по вопросам безопасности, очевидно стоит обращаться не сюда, а в СовБез ООН.
Ну или в спортлото, на худой конец. | |
|
|
|
|
|
|
|
для: Trianon
(11.04.2010 в 13:35)
| | )))) я имею ввиду если в html коде есть вредоносный код | |
|
|
|
|
|
|
|
для: Bvz
(11.04.2010 в 15:50)
| | В плане безопасности стоит опасаться внедрения како-го либо програмного кода, который выполняеться браузером, например яваскрипта, поэтому фильтруйте данные при приеме на наличие тегов которые указывают браузеру что дальше следует испольинть допустим яваскрипт
Ну или что лучше просто фильтруйте данные на разрешенные теги или вообще используйте BB-код(при выводе сначала воспользуйтесь функцией о которой тут речь), а дальше заменяйте допустим [b] на <b>, наверняка вы не весь хтмл разрешите использовать пользователям | |
|
|
|
|
|
|
|
для: tvv123456
(11.04.2010 в 15:56)
| | >В плане безопасности стоит опасаться внедрения како-го либо програмного кода, который выполняеться браузером, например яваскрипта, поэтому фильтруйте данные при приеме на наличие тегов которые указывают браузеру что дальше следует испольинть допустим яваскрипт
а как фильтровать яваскрипт? | |
|
|
|
|
|
|
|
для: Bvz
(11.04.2010 в 16:11)
| | >а как фильтровать яваскрипт?
регулярку составте | |
|
|
|
|
|
|
|
для: tvv123456
(11.04.2010 в 17:39)
| | вот тут рядышком есть раздел по HTML, Джаваскрипту и CSS.
Скажите, пожалуйста, Если бы на этом форуме была установлена регулярка, которую Вы замыслили, смог хотя бы кто-нибудь что-нибудь в том разделе не только написать, но и проиллюстрировать примером?! Там ведь каждый второй пост с джаваскриптом?
Когда же, наконец, тут перестанут давать советы за пределами собственной компетентности... | |
|
|
|
|
|
|
|
для: Trianon
(11.04.2010 в 18:35)
| | а как фильтровать? | |
|
|
|
|
|
|
|
для: Trianon
(11.04.2010 в 18:35)
| | ну дак тут он и не исполняеться а выводиться как есть. А как я понял автору темы нужно чтобы html код исполнялся браузером, но в тоже время чтобы не исполнялся яваскрипт. | |
|
|
|
|
|
|
|
для: tvv123456
(11.04.2010 в 19:15)
| | ну да | |
|
|
|
|
|
|
|
для: Bvz
(11.04.2010 в 19:18)
| | НУ раз я все правильно понял то проверяйте присутствует ли <script и выводите просьбу убрать весь яваскрипт.
Сделать можно примерно так:
<?
if(preg_match ("|^[<script ]$|", $a)) //регулярка тут не правильно составлена наверняка
{
echo "Уберите весь яваскрипт из вашего текста";
echo // тут выводим форму сохранив введеные пользователем данные
}
|
или как вариант чтобы не исполнялся яваскрипт ищем, регуляркой где начинаеться яваскрипт, но отображался на странице и заменяем <> в нем на спецсимволы, правда как-то некрасиво получаеться?
Я в регулярных выражениях сам еще не разобрался, так что это лишь сырая идея, переработайте как нужно вам и потом еще и мне расскажите :)
Как понимаете эту операцию нужно делать до заноса данных в базу. | |
|
|
|
|
|
|
|
для: tvv123456
(11.04.2010 в 20:05)
| | Если уж такое делать, то можно и без регулярок - strpos() или strstr() да и все =)
Только если это будет выводиться другим пользователям - не забудьте про такие тэги как iframe и подобное, что найдете..
Да и вообще, я бы лучше сделал список допустимых html тегов. А еще надо проверять, чтобы они были закрыты - не так сложно будет написать такой html код, который развалит вашу верстку к чертям
P.S. регулярка у вас неверная хотя бы потому, что там указаны начало и конец строки - не думаю, что весь текст будет состоять из <script
К тому же, вы используете класс (квадратные скобки, по-моему, так называется), так что удовлетворять вашей регулярке будет строка состоящая из одного символа из этого класса | |
|
|
|
|
|
|
|
для: neadekvat
(11.04.2010 в 21:43)
| | >Да и вообще, я бы лучше сделал список допустимых html тегов. А еще надо проверять, чтобы
>они были закрыты - не так сложно будет написать такой html код, который развалит вашу
>верстку к чертям
Я про это говорил уже.
>
>P.S. регулярка у вас неверная хотя бы потому, что там указаны начало и конец строки - не
>думаю, что весь текст будет состоять из <script
Я в регулярках до сих пор так и не разобрался окончательно наверное до и после нужно поставить любое количество любых символов :))) | |
|
|
|
|
|
|
|
для: tvv123456
(11.04.2010 в 19:15)
| | Да, только я не просек тот момент, когда этот самый html-код захотели от пользователя брать.
Если автор собрался получать прямой текст HTML-кода из формы и направлять этот HTML-код в браузер именно как HTML-код, то он, конечно, самый что ни на есть героический геройский герой, и маловероятно, что его защитят хоть какие-нибудь регулярки. А плевков в карму на тему того, что в его движке нужный текст не набрать, он огребет от посетителей более чем знатно. Особенно, если портал технической направленности. | |
|
|
|
|
|
|
|
для: Bvz
(11.04.2010 в 15:50)
| | Если Вы не будете выводить вредноносный код в поток html - его там не будет.
Но панацеи от этого нет. | |
|
|
|