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

Форум PHP

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

 

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

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

тема: подскажите strip_tags удаляет HTML и PHP тэги?
 
 автор: Victor87   (08.04.2010 в 23:18)   письмо автору
 
 

strip_tags удаляет HTML и PHP тэги, а для формы регистрации надо ее применять или есть какие нибуть другие

  Ответить  
 
 автор: Trianon   (08.04.2010 в 23:53)   письмо автору
 
   для: Victor87   (08.04.2010 в 23:18)
 

с какой целью?

  Ответить  
 
 автор: Тень*   (08.04.2010 в 23:54)   письмо автору
 
   для: Victor87   (08.04.2010 в 23:18)
 

strip_tags() - мысли извращенца. Она вообще не должна нигде использоваться в принципе.

http://softtime.ru/info/task.php?id_article=110

  Ответить  
 
 автор: Legenda   (15.04.2010 в 10:23)   письмо автору
 
   для: Тень*   (08.04.2010 в 23:54)
 

>strip_tags() - мысли извращенца. Она вообще не должна нигде использоваться в принципе.

Весьма полезная функция, при чистке данных введенных пользователем. Приведенная цитата, написана человеком далеким от написания безопасных скриптов. Проверять данные введенные пользователем и вырезать от-туда все непотребное НУЖНО ОБЯЗАТЕЛЬНО!!! Ну если вы конечно не хотите "положить" свой сайт... А что касается чистки, ту тут нужно пропускать ВСЕ данные через ряд фильтров, в зависимости от того какие данные должны остаться. Лучше в итоге получить пустую переменную и "сказать пользователю" чтобы ввел нормальные данные, чем грохнуть БД SQL инъекцией...

  Ответить  
 
 автор: Trianon   (15.04.2010 в 10:47)   письмо автору
 
   для: Legenda   (15.04.2010 в 10:23)
 

Ну какой же ж бред-то феерический!
Вот здесь, в этом форуме, Вы можете написать любой код. Вообще любой!
И этот любой код, вместо того, чтобы пройти SQL-инъекцией, будет заботливо положен в базу и оттуда из нее изъят при просмотре.
"Лучше фильтров понаставить. Лучше пользователю сказать."
Пользователь такому разработчику скажет, что он муд@к, и если программировать не умеет, то пусть либо учиться идет, либо картошку грузить там, асфальт мести и прочее. . А не сайты писать, и уж тем более - других учить.

  Ответить  
 
 автор: Legenda   (16.04.2010 в 10:41)   письмо автору
 
   для: Trianon   (15.04.2010 в 10:47)
 

> Вот здесь, в этом форуме, Вы можете написать любой код. Вообще любой!
И этот любой код, вместо того, чтобы пройти SQL-инъекцией, будет заботливо положен в базу и оттуда из нее изъят при просмотре.

И это типо без фильтров - бред!
Просто взяли все введенные данные $_POST['xxx'] и без всякой обработки кинули в БД ???
Примерно так:


mysql_query("INSERT INTO table (text) VALUES ('".$_POST['xxx']."')");



И кто после вышесказанного, тут бред написал... Любые данные пред тем как передать их на заливку в БД нужно обязательно проверять. А если вы этого не делаете, то вам самим нужно картошку грузить и асфальт укладывать!

  Ответить  
 
 автор: DJ Paltus   (16.04.2010 в 11:20)   письмо автору
 
   для: Legenda   (16.04.2010 в 10:41)
 

Не ссорьтесь, горячие финские программисты.
Трианон имел в виду, что данные надо не фильтровать, вырезая теги и портя не только инъекции, но и смысл вводимого юзером поста, а ОБРАБАТЫВАТЬ таким образом, чтобы он мог и код послать в пост, и sql-запрос показать другим, и сделал это легко и ненапряжно, и на выходе получил такую же безобидную строчку
<?php mysql_query("drop table `users`"); ?>

которая влезла в БД и вылезла из нее, не став за это время ни инъекцией, ни обрубком "отфильтрованного" текста.

  Ответить  
 
 автор: Legenda   (16.04.2010 в 11:23)   письмо автору
 
   для: DJ Paltus   (16.04.2010 в 11:20)
 

Так извиняюсь за банальность, фильтры и настраиваются под конкретные задачи. Если нужно к примеру проверить является ли переменная числом, один фильтр. Если нужно проверить является ли переменная строкой, другой фильтр, а не пороть полную чушь утверждая что фильтры не нужны... Другой вопрос что за фильтры и под какие задачи заточены.

  Ответить  
 
 автор: tvv123456   (16.04.2010 в 11:24)   письмо автору
 
   для: Legenda   (16.04.2010 в 10:41)
 

Слышали что-ниблудь про mysql_escape_string или htmlspecialchars?

  Ответить  
 
 автор: Legenda   (16.04.2010 в 11:27)   письмо автору
 
   для: tvv123456   (16.04.2010 в 11:24)
 

Слышали, как вариант фильтра для строк.
Только лучше mysql_real_escape_string()

  Ответить  
 
 автор: tvv123456   (16.04.2010 в 11:42)   письмо автору
 
   для: Legenda   (16.04.2010 в 11:27)
 

>Слышали, как вариант фильтра для строк.
А что вы понимаете под фильтра для строк

Дак вот: для формы регистрации(да и не только) нужно:
-убрать магические кавычки,
- все строковые значения которые используються в запросе обработать mysql_real_escape_string(непосредствено перед запросом).
Надеюсь понятно что если шифруете пароль в md5допустим, то обрабатывать его не имеет смысла.

Перед выводом в браузер нужно использовать htmlspecialchars()

И не нужно мудрствовать и говорить людям что они ничего не понимают в написании безопасных скриптов. Вы пришли за советом, а когда вам их дают начинаете отстаивать совершенно левые утверждения

  Ответить  
 
 автор: Legenda   (16.04.2010 в 14:07)   письмо автору
 
   для: tvv123456   (16.04.2010 в 11:42)
 

> А что вы понимаете под фильтра для строк
Любая функция (или набор функций), для обработки полученных данных.

> Перед выводом в браузер нужно использовать htmlspecialchars()
И убрать экранирующие \ если они есть, про это вы запамятовали.

  Ответить  
 
 автор: tvv123456   (16.04.2010 в 14:43)   письмо автору
 
   для: Legenda   (16.04.2010 в 14:07)
 

>И убрать экранирующие \ если они есть, про это вы запамятовали.
Вы внимательней прочитайте. Это первым пунктом идет.
А если вы берете из базы то что планируете вывести в браузер, то никаких экранирующих слешей в базе быть не должно

  Ответить  
 
 автор: хер_веревкин   (16.04.2010 в 11:28)   письмо автору
 
   для: Trianon   (15.04.2010 в 10:47)
 

[поправлено модератором]

  Ответить  
 
 автор: ~AquaZ~   (16.04.2010 в 14:55)   письмо автору
 
   для: хер_веревкин   (16.04.2010 в 11:28)
 

strip_tags() действительно бред и служит для крайне узкого круга задач. Нармальные люди обрабатывают данные HtmlSpecialChars() и MySQL_real_escape_string().
Legenda, лишние \ сами из задницы не вырастают, а появляются в результате работы чудо-програмеров, т.н. двойной обработки.

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

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