Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: преобразование перед выводом
 
 автор: Bvz   (11.04.2010 в 11:47)   письмо автору
 
 

а какой функцией преобразовывать текст взятый из БД перед выводом в окне браузера

  Ответить  
 
 автор: Trianon   (11.04.2010 в 11:49)   письмо автору
 
   для: Bvz   (11.04.2010 в 11:47)
 

nl2br(htmlspecialchars())

конечно, если это обычный плоский текст (а не html-код)

  Ответить  
 
 автор: Bvz   (11.04.2010 в 11:55)   письмо автору
 
   для: Trianon   (11.04.2010 в 11:49)
 

а если html код?

  Ответить  
 
 автор: Trianon   (11.04.2010 в 12:15)   письмо автору
 
   для: Bvz   (11.04.2010 в 11:55)
 

если Вы html-код выводите в поток html-кода, естественно, никаких преобразований делать не нужно.

Поймите, тут важно не то, из базы данные или еще откуда.
Тут важно какого типа данные и какой тип контента формируемой страницы.
Если они не совпадают, одно необходимо преобразовать к другому.

  Ответить  
 
 автор: Bvz   (11.04.2010 в 12:45)   письмо автору
 
   для: Trianon   (11.04.2010 в 12:15)
 

а как же вопрос безопасности?

  Ответить  
 
 автор: Trianon   (11.04.2010 в 13:35)   письмо автору
 
   для: Bvz   (11.04.2010 в 12:45)
 

какой вопрос?
Хотя по вопросам безопасности, очевидно стоит обращаться не сюда, а в СовБез ООН.
Ну или в спортлото, на худой конец.

  Ответить  
 
 автор: Bvz   (11.04.2010 в 15:50)   письмо автору
 
   для: Trianon   (11.04.2010 в 13:35)
 

)))) я имею ввиду если в html коде есть вредоносный код

  Ответить  
 
 автор: tvv123456   (11.04.2010 в 15:56)   письмо автору
 
   для: Bvz   (11.04.2010 в 15:50)
 

В плане безопасности стоит опасаться внедрения како-го либо програмного кода, который выполняеться браузером, например яваскрипта, поэтому фильтруйте данные при приеме на наличие тегов которые указывают браузеру что дальше следует испольинть допустим яваскрипт

Ну или что лучше просто фильтруйте данные на разрешенные теги или вообще используйте BB-код(при выводе сначала воспользуйтесь функцией о которой тут речь), а дальше заменяйте допустим [b] на <b>, наверняка вы не весь хтмл разрешите использовать пользователям

  Ответить  
 
 автор: Bvz   (11.04.2010 в 16:11)   письмо автору
 
   для: tvv123456   (11.04.2010 в 15:56)
 

>В плане безопасности стоит опасаться внедрения како-го либо програмного кода, который выполняеться браузером, например яваскрипта, поэтому фильтруйте данные при приеме на наличие тегов которые указывают браузеру что дальше следует испольинть допустим яваскрипт


а как фильтровать яваскрипт?

  Ответить  
 
 автор: tvv123456   (11.04.2010 в 17:39)   письмо автору
 
   для: Bvz   (11.04.2010 в 16:11)
 

>а как фильтровать яваскрипт?

регулярку составте

  Ответить  
 
 автор: Trianon   (11.04.2010 в 18:35)   письмо автору
 
   для: tvv123456   (11.04.2010 в 17:39)
 

вот тут рядышком есть раздел по HTML, Джаваскрипту и CSS.
Скажите, пожалуйста, Если бы на этом форуме была установлена регулярка, которую Вы замыслили, смог хотя бы кто-нибудь что-нибудь в том разделе не только написать, но и проиллюстрировать примером?! Там ведь каждый второй пост с джаваскриптом?

Когда же, наконец, тут перестанут давать советы за пределами собственной компетентности...

  Ответить  
 
 автор: Bvz   (11.04.2010 в 18:46)   письмо автору
 
   для: Trianon   (11.04.2010 в 18:35)
 

а как фильтровать?

  Ответить  
 
 автор: tvv123456   (11.04.2010 в 19:15)   письмо автору
 
   для: Trianon   (11.04.2010 в 18:35)
 

ну дак тут он и не исполняеться а выводиться как есть. А как я понял автору темы нужно чтобы html код исполнялся браузером, но в тоже время чтобы не исполнялся яваскрипт.

  Ответить  
 
 автор: Bvz   (11.04.2010 в 19:18)   письмо автору
 
   для: tvv123456   (11.04.2010 в 19:15)
 

ну да

  Ответить  
 
 автор: tvv123456   (11.04.2010 в 20:05)   письмо автору
 
   для: Bvz   (11.04.2010 в 19:18)
 

НУ раз я все правильно понял то проверяйте присутствует ли <script и выводите просьбу убрать весь яваскрипт.

Сделать можно примерно так:


<?
if(preg_match ("|^[<script ]$|"$a)) //регулярка тут не правильно составлена наверняка
{
echo 
"Уберите весь яваскрипт из вашего текста";
echo 
// тут выводим форму сохранив введеные пользователем данные

}


или как вариант чтобы не исполнялся яваскрипт ищем, регуляркой где начинаеться яваскрипт, но отображался на странице и заменяем <> в нем на спецсимволы, правда как-то некрасиво получаеться?


Я в регулярных выражениях сам еще не разобрался, так что это лишь сырая идея, переработайте как нужно вам и потом еще и мне расскажите :)


Как понимаете эту операцию нужно делать до заноса данных в базу.

  Ответить  
 
 автор: neadekvat   (11.04.2010 в 21:43)   письмо автору
 
   для: tvv123456   (11.04.2010 в 20:05)
 

Если уж такое делать, то можно и без регулярок - strpos() или strstr() да и все =)
Только если это будет выводиться другим пользователям - не забудьте про такие тэги как iframe и подобное, что найдете..
Да и вообще, я бы лучше сделал список допустимых html тегов. А еще надо проверять, чтобы они были закрыты - не так сложно будет написать такой html код, который развалит вашу верстку к чертям

P.S. регулярка у вас неверная хотя бы потому, что там указаны начало и конец строки - не думаю, что весь текст будет состоять из <script
К тому же, вы используете класс (квадратные скобки, по-моему, так называется), так что удовлетворять вашей регулярке будет строка состоящая из одного символа из этого класса

  Ответить  
 
 автор: tvv123456   (12.04.2010 в 01:03)   письмо автору
 
   для: neadekvat   (11.04.2010 в 21:43)
 

>Да и вообще, я бы лучше сделал список допустимых html тегов. А еще надо проверять, чтобы
>они были закрыты - не так сложно будет написать такой html код, который развалит вашу
>верстку к чертям

Я про это говорил уже.

>
>P.S. регулярка у вас неверная хотя бы потому, что там указаны начало и конец строки - не
>думаю, что весь текст будет состоять из <script

Я в регулярках до сих пор так и не разобрался окончательно наверное до и после нужно поставить любое количество любых символов :)))

  Ответить  
 
 автор: Trianon   (11.04.2010 в 22:19)   письмо автору
 
   для: tvv123456   (11.04.2010 в 19:15)
 

Да, только я не просек тот момент, когда этот самый html-код захотели от пользователя брать.
Если автор собрался получать прямой текст HTML-кода из формы и направлять этот HTML-код в браузер именно как HTML-код, то он, конечно, самый что ни на есть героический геройский герой, и маловероятно, что его защитят хоть какие-нибудь регулярки. А плевков в карму на тему того, что в его движке нужный текст не набрать, он огребет от посетителей более чем знатно. Особенно, если портал технической направленности.

  Ответить  
 
 автор: Trianon   (11.04.2010 в 17:15)   письмо автору
 
   для: Bvz   (11.04.2010 в 15:50)
 

Если Вы не будете выводить вредноносный код в поток html - его там не будет.
Но панацеи от этого нет.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования