Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: недольшой спор насчет экранирования запросов

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
fx500
Отправлено: 17 Февраля, 2011 - 17:26:26
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Февр. 2011  


Помог: 0 раз(а)




Здрасти.. Опасно ли использовать такой метод?
(я знаю, что он не стандартный)
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $name=htmlspecialchars($_POST['name'],ENT_QUOTES);
  4. $q=mysql_query("SELECT `id` FROM `some` WHERE `name`='$name'");
  5.  


Ведь если разобраться, htmlspecialchars() УЖЕ обработала одинарные ковычки, а в запросе строка именно в них заключена, а что внутри это уже не важно..)))
может я не прав? Растерялся
 
 Top
Мелкий Супермодератор
Отправлено: 17 Февраля, 2011 - 17:27:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




да, можно использовать так.


-----
PostgreSQL DBA
 
 Top
OrmaJever
Отправлено: 17 Февраля, 2011 - 17:32:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




мне кажется так ничё не выдет Растерялся
кавычку не заэкранизирует а поменяет на & # 0 3 9 ; и запрос не будет работать.

(Отредактировано автором: 17 Февраля, 2011 - 17:32:36)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
fx500
Отправлено: 17 Февраля, 2011 - 17:36:50
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Февр. 2011  


Помог: 0 раз(а)




OrmaJever пишет:
мне кажется так ничё не выдет
кавычку не заэкранизирует а поменяет на & # 0 3 9 ; и запрос не будет работать.


нет.. Все работает, это уже проверенно, именно это и нужно, чтобы одним разом просечь и теги и не повредить запрос.... спор заключался в том не опасноли это, можно ли закинуть в том скрипте такой запрос который выйдет "за ковычки", и сделает че нить нехорошее)))))
 
 Top
nextdrift
Отправлено: 17 Февраля, 2011 - 18:13:45
Post Id


Гость


Покинул форум
Сообщений всего: 97
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




Я лично с опаской отношусь к входящим данным. Создал функцию, для чистки входящего текста, а в ней следующий вид:

mysql_real_escape_string(trim(strip_tags_smart($text)));
(Добавление)
strip_tags_smart - это пользовательская функция
 
 Top
fx500
Отправлено: 19 Февраля, 2011 - 20:31:50
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Февр. 2011  


Помог: 0 раз(а)




nextdrift пишет:
Я лично с опаской отношусь к входящим данным. Создал функцию, для чистки входящего текста, а в ней следующий вид:

mysql_real_escape_string(trim(strip_tags_smart($text)));
(Добавление)
strip_tags_smart - это пользовательская функция


мне из-за одного умника, каторый придерживается правил которым его учили приходится весь код переписывать... и еще смеет заявлять в мою сторону что мне поумнеть надо... я принципиально переписывать не собираюсь потомучто на 100% уверен в своей правоте!!!!!!!!! и еще этот умник делает замечание на вот это:

данная комбинация превращает переменную строго в число, и опять опираясь банальным правилам требует сменить это на intval()... скажите нахера давать образование людям? чтобы вот так дрочили кодеров, которые знают свое дело и XSS фильтруют по своему и правильно!!!!!!!!!!
 
 Top
OrmaJever
Отправлено: 19 Февраля, 2011 - 20:40:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




fx500 пишет:
данная комбинация превращает переменную строго в число

это и правдо немногостраный способ А?!

fx500 пишет:
которые знают свое дело и XSS фильтруют по своему и правильно

По своемуне всегда означает правильно. 2 разных способа могут выдавать один результат, но один будет грузится 10мс и забирать минимум памяти, а другой 100мс и значительно забивать память.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
fx500
Отправлено: 19 Февраля, 2011 - 20:57:55
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Февр. 2011  


Помог: 0 раз(а)




OrmaJever пишет:
По своемуне всегда означает правильно. 2 разных способа могут выдавать один результат, но один будет грузится 10мс и забирать минимум памяти, а другой 100мс и значительно забивать память.


Приведите мне факты что я не прав, может и поверю!!!!! Сделайте такую строку что после (+0) и htmlspecialchars('...',ENT_QUOTES) вернет такую строку что может повлиять на запросы... я программированием занимаюсь с детства, и не один десяток язаков знаю, и делаю это так как считаю нужным и удобнее... и не собираюсь выслушивать претензии так называемых "обученых" прогеров, которые придерживаются банальностям... извините, но это так!!!

(Отредактировано автором: 19 Февраля, 2011 - 21:00:11)

 
 Top
nextdrift
Отправлено: 20 Февраля, 2011 - 14:25:36
Post Id


Гость


Покинул форум
Сообщений всего: 97
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




fx500 пишет:
nextdrift пишет:
Я лично с опаской отношусь к входящим данным. Создал функцию, для чистки входящего текста, а в ней следующий вид:

mysql_real_escape_string(trim(strip_tags_smart($text)));
(Добавление)
strip_tags_smart - это пользовательская функция


мне из-за одного умника, каторый придерживается правил которым его учили приходится весь код переписывать... и еще смеет заявлять в мою сторону что мне поумнеть надо... я принципиально переписывать не собираюсь потомучто на 100% уверен в своей правоте!!!!!!!!! и еще этот умник делает замечание на вот это:

данная комбинация превращает переменную строго в число, и опять опираясь банальным правилам требует сменить это на intval()... скажите нахера давать образование людям? чтобы вот так дрочили кодеров, которые знают свое дело и XSS фильтруют по своему и правильно!!!!!!!!!!



Радость смешно читать. Не в том деле, что ты не прав или я не прав. Ты даже не прочитал что я написал и уже начинаешь высказывать своё превосходство.

Я НЕ ПИСАЛ ЧТО НУЖНО ДЕЛАТЬ ТАК. Я всего лишь написал, как делаю я.

Что я написал? А я написал - что создал ОДНУ функцию (и в этом случае мне нужно только в ОДНОМ месте код править), а в ней следующий вид. И просто вызываю эту функцию для чистки.



Если ты программер с детства то есть два варианта:
0 - ты ребёнок
1 - глупо задавать такие вопросы

И зачем доказывать свою правоту "с пеной изо рта" ? Никто тебя по рукам не бьёт, вот и пользуйся своим набором правил.

ты спросил мнения, тебе их сказали. Ты спорил с кем-то, а теперь споришь с нами
 
 Top
OrmaJever
Отправлено: 20 Февраля, 2011 - 15:11:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




fx500 пишет:
Приведите мне факты что я не прав, может и поверю!!!!! Сделайте такую строку что после (+0) и htmlspecialchars('...',ENT_QUOTES) вернет такую строку что может повлиять на запросы

Вы мой пост читали или сразу ответ начали писать?
OrmaJever пишет:
2 разных способа могут выдавать один результат, но один будет грузится 10мс и забирать минимум памяти, а другой 100мс и значительно забивать память.

Да и вобще если вы с детства програмируете что вас на форум привело? Однако
(Добавление)
Ну и для человека кторый програмирует с пелёнок покажу как делается fatal error

и в адресной строке вводим file.php?id[]=1
И видим ошибку + раскрытие путей!
А вот так мы невидим ничего!

(Отредактировано автором: 20 Февраля, 2011 - 15:49:43)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
ALEN
Отправлено: 20 Февраля, 2011 - 15:58:01
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




fx500, честно сказать ты не прав. Разработчики изначально придумали решение которое использовать правильней, которое постоянно усовершенствуют и проверяют, чтоб оно не давало неожиданных результатов. А факты твоего неправильного решения уже привел OrmaJever и показал, что бывает, если использовать метод подгона. Если твой код работает и тебя устраивает, как он работает пожалуйста пиши, тебя никто не собирается переучивать, но если ты спрашиваешь совета, то будь добр выслушивать и вникать в сказанное. Я так же знаю не один язык, пишу с детства программы и многие на этом форуме так же и никто кроме тебя не пишет такую фигню на этом форуме.

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

Возьми любого старичка на этом форуме, никто из них не бьет себя в грудь, что круче всех.

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

Цитата:
mysql_real_escape_string - Функция экранирует специальные символы строки unescaped_string, принимая во внимание кодировку соединения, таким образом, что результат можно безопасно использовать в SQL-запросе в функци mysql_query().
 
 Top
Invert
Отправлено: 20 Февраля, 2011 - 17:13:21
Post Id



Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Нояб. 2010  


Помог: 5 раз(а)




Исправил. Не желаю вступать в спор.

(Отредактировано автором: 20 Февраля, 2011 - 17:35:27)

 
 Top
Champion Супермодератор
Отправлено: 20 Февраля, 2011 - 17:36:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




fx500, зачем столько восклицательных знаков? Очень глупо себя ведете. Вам действительно стоит поумнеть.
(Добавление)
Invert, зря исправил, правильно написал.
Тема закрыта!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB