![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 9 Всего: 315 |
||||
|
||||
Muerto |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: нет Всего: 4 |
mysql_real_escape_string супер не надежный
*Sorry for english, not at home... if you have a website where you echo the $data from you fetched from your DB, you will have a problem! For example: try to send something like
you will do
You won't get any errors, just and alert message if you dare to echo it
result: popup message = alert... cause of this you need a filters, you cant work only with mysql_real_escape_string, I personaly don tsee any point in this function... maybe to filter key words... Это сообщение отредактировал(а) Muerto - 10.7.2010, 11:43 |
||||||
|
|||||||
enoff |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 30.6.2010 Где: Санкт-Петербург Репутация: нет Всего: 13 |
и в каком месте он ненадежный? Добавление в базу данных проходит без ошибок, а вывод в браузер уже другая история - htmlspecialchars() |
|||
|
||||
Muerto |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: нет Всего: 4 |
и ты допустим в скрипте блога будеш каждый раз фильтровать by htmlspecialchars?
если вы поиска боитесь лучше запрос поиска пропустите через ту же функцию, имхо так умней а intval / (int) как фильтр чисел, оч плох what if my passport number is 4743756475647? |
|||
|
||||
enoff |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 30.6.2010 Где: Санкт-Петербург Репутация: нет Всего: 13 |
да буду. потому что в базе будет храниться именно то, что ввел пользователь. Потом может понадобиться экспорт бд, перемещение на другой движок и т.д. применять htmlspecialchars перед выводом - общепринято, так умнее, и не имхо. вы где живете? ctype_digit(), регулярные выражения не помогут? |
|||
|
||||
bars80080 |
|
||||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 9 Всего: 315 |
или, если мне важна скорость, но не имеет значения объём БД, буду хранить два варианта. оригинал для правок и преобразованную версию для отдачи пользователю
слово "умней" не очень подходит для совершения делов без понимания чего ты хочешь добиться и чего делают те или иные функции
intval хорош, если ты хочешь привести число к формату int(11), оно для этого и существует. если ты хочешь привести число к другому формату, то есть другие функции |
||||||
|
|||||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
если настолько важна скорость, что htmlspecialchars стало узким местом, то уже давно должна быть реализована кеширование сформированных кусков страницы целиком. ибо на фоне работы с базой данных, файлами, сетью, htmlspecialchars - совсем незаметное проишествие.
|
|||
|
||||
Muerto |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: нет Всего: 4 |
я тестировал mysql_real_escape_string и уже писал чем закончилось дело...
но все же - как его стоит использовать?
а почему нет аналога mysql_real_escape_string но просто функция? которую я смогу применять без открытого подключения? и ещё: предположим я хочу хранить адреса! http://mysql.com/?r=3&b=6&v=7 after htmlspecialchars http://mysql.com/?r=3&b=6&v=7 и такое браузер не поймет если перейдем на ссылку! а если не фильтровать то нам хсс инджекшен запихнут! |
|||
|
||||
bars80080 |
|
||||||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 9 Всего: 315 |
как-то не так использовал.
а смысл её применять, если ты не собираешься вставлять данные в БД это кстати ключевой вопрос, который обязательно нужно уяснить: зачем что-то делать с текстом, если ты не собираешься его никак использовать? если ты его собираешься как-то использовать, то нужно определить соответствующие средства для безопасности. а не все подряд без разбору
а пример с xss можно? |
||||||||
|
|||||||||
Muerto |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: нет Всего: 4 |
а пример с xss можно?
вот так можно наращивать себе тиц: есть сайт к примеру http://blabla.ru там есть поиск http://blabla.ru/search.php?q= q - this is our query for the search... so now - > http://blabla.ru/search.php?q="<a href='http://mysql.com/?r=3&b=6&v=7'>mysite</a> и в определенных условиях получаем иногда то цтхо искали показывается в форме поиска сверху... и выходит что будет форма пустой и слева ссылка на ваш сайт, теперь осталось на свой сайт поместить ссылку: http://blabla.ru/search.php?q="<a href='http://mysql.com/?r=3&b=6&v=7'>mysite</a> и получаем от того сайта линк бэк... у меня дома даже где то список таких сайтов был... спецом выискивал... |
|||
|
||||
skyboy |
|
||||||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
сначала "хранишь адреса"
потом вдруг речь начинает идти о строке поиска: чем в таком случае "мешает" htmlspecialchars - непонятно. после будет выведен как раз просто текст "<a href='http://mysql.com/?r=3&b=6&v=7'>mysite</a> а вообще, браузер вполне нормально работает с адресами, в которых вместо "&" находится "&" более того, на структуру типа
ругается валидатор, потому что
|
||||||
|
|||||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |