[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: достаточно ли mysql_real_escape_string???
12345
Достаточно ли функции mysql_real_escape_string( для того, чтоб обезопасить текст попадающий в бд?
К примеру у меня есть форма для добавления отзывов. Текст отзыва не фильтруется, а сразу идет в бд через функцию mysql_real_escape_string(. Можно ли НЕ опосатся того, что таким образом сайт может быть взломан?



Спустя 25 минут, 18 секунд (15.07.2012 - 16:39) Shkiper написал(а):
Изходя из личного опыта - НЕТ wink.gif

Спустя 2 минуты, 54 секунды (15.07.2012 - 16:42) 12345 написал(а):
Ну а что тогда еще сделать? В тексте должны быть разрешены использованы все знаки, которые есть на клавиатуре.

Кто, что может посоветовать?

Спустя 1 минута, 39 секунд (15.07.2012 - 16:43) killer8080 написал(а):
Цитата (12345 @ 15.07.2012 - 16:13)
Можно ли НЕ опосатся того, что таким образом сайт может быть взломан?

Да

Спустя 1 минута, 5 секунд (15.07.2012 - 16:44) Shkiper написал(а):
Цитата
Изходя из личного опыта - НЕТ wink.gif

Тьфу ты хотел сказать ДА а сказал нет. Прости господи меня за грешные слова

Спустя 42 секунды (15.07.2012 - 16:45) pak написал(а):
регулярки, при не пускать все попало, обрезать, заменять

Спустя 2 минуты, 6 секунд (15.07.2012 - 16:47) Shkiper написал(а):
pak в этом нет необходимости.

Спустя 1 минута, 26 секунд (15.07.2012 - 16:49) killer8080 написал(а):
Цитата (pak @ 15.07.2012 - 16:45)
регулярки, при не пускать все попало, обрезать, заменять

пользы никакой, а не удобства обеспечены wink.gif

Спустя 1 минута, 9 секунд (15.07.2012 - 16:50) 12345 написал(а):
тоесь если я в input введу любой текст, а потом сразуже его в БД буду писать через mysql_real_escape_string();? то могу быть уверен, что сайт НЕ пострадает от этого?

Спустя 2 минуты, 46 секунд (15.07.2012 - 16:53) Shkiper написал(а):
Угу biggrin.gif biggrin.gif biggrin.gif biggrin.gif

Спустя 1 минута, 24 секунды (15.07.2012 - 16:54) killer8080 написал(а):
12345
только нужно еще не забывать о существовании такой мелкой пакости, как magic quotes gpc rolleyes.gif

Спустя 1 минута, 49 секунд (15.07.2012 - 16:56) pak написал(а):
только если лопнит от инфы)

Спустя 1 минута, 46 секунд (15.07.2012 - 16:58) Shkiper написал(а):
Цитата
только нужно еще не забывать о существовании такой мелкой пакости, как magic quotes gpc rolleyes.gif

Да эту хрен* надо отключать

Спустя 1 минута, 20 секунд (15.07.2012 - 16:59) killer8080 написал(а):
Цитата (Shkiper @ 15.07.2012 - 16:58)
Да эту хрен* надо отключать

Не все хостинги дают такую возможность, потому я и обратил на это внимание ТС smile.gif

Спустя 2 минуты, 21 секунда (15.07.2012 - 17:01) Shkiper написал(а):
Цитата
Не все хостинги дают такую возможность, потому я и обратил на это внимание ТС smile.gif

Надо хостинг подбирать.

Спустя 2 минуты, 15 секунд (15.07.2012 - 17:03) 12345 написал(а):
В первый раз слышу о magic quotes gpc. Сейчас прогуглю)

Спустя 37 секунд (15.07.2012 - 17:04) waldicom написал(а):
Нет, только применения этой функции при определенных условиях не достаточно.

Спустя 24 секунды (15.07.2012 - 17:04) killer8080 написал(а):
Цитата (Shkiper @ 15.07.2012 - 17:01)
Надо хостинг подбирать

Ну мы то обсуждаем программирование, а не хостинги. Поэтому нужно учитывать все возможные варианты. Самом собой говеные хостинги нужно обходить стороной smile.gif

Спустя 1 минута, 42 секунды (15.07.2012 - 17:06) 12345 написал(а):
Цитата
Глобальная конфигурация серверов magic_quotes_gpc on, т.к. это положительно сказывается на безопасности.
Многие движки требуют отключения PHP-опции magic_quotes_gpc

эмммс, так а чем эта функция может навредить то?

Спустя 2 минуты (15.07.2012 - 17:08) pak написал(а):
тут хорошо написано)
http://phpfaq.ru/slashes

Спустя 31 секунда (15.07.2012 - 17:09) killer8080 написал(а):
Цитата (waldicom @ 15.07.2012 - 17:04)
Нет, только применения этой функции при определенных условиях не достаточно.

Достаточно, по условию вопроса
Цитата
Достаточно ли функции mysql_real_escape_string( для того, чтоб обезопасить текст попадающий в бд?
К примеру у меня есть форма для добавления отзывов. Текст отзыва не фильтруется, а сразу идет в бд

Раз мы имеем дело с субд mysql, и текстовыми данными.
Численные типы данных нужно просто приводить к типу(float, integer)

Спустя 43 секунды (15.07.2012 - 17:09) killer8080 написал(а):
Цитата (12345 @ 15.07.2012 - 17:06)
эмммс, так а чем эта функция может навредить то?

тем, что исказит данные натыкав слешей.

Спустя 3 минуты, 35 секунд (15.07.2012 - 17:13) 12345 написал(а):
ну так а без слешей текс ведь будет опасный

Спустя 3 минуты, 46 секунд (15.07.2012 - 17:17) AlmazDelDiablo написал(а):
Цитата (Shkiper @ 15.07.2012 - 19:01)
Надо хостинг подбирать.

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

По теме.
mysql_real_escape_string(), имхо, вполне хватает для ввода в базу каких-либо строк. Всех вероятностей все равно не учтешь.

Спустя 4 минуты, 27 секунд (15.07.2012 - 17:21) killer8080 написал(а):
Цитата (12345 @ 15.07.2012 - 17:13)
ну так а без слешей текс ведь будет опасный

текст не бывает опасным, опасной бывает некорректная обработка данных.
Если "волшебные кавычки" не были отключены, после mysql_real_escape_string в тексте появятся лишние слеши, что ни есть гуд wink.gif
Поэтому важно не забывать о таких мелких деталях. К тому же не всегда входные данные нужно писать в БД, иногда и в файл, или просто отправить по почте. По сему эту опцию нужно отключать, если есть возможность. Кстати в 5.4 кажется её уже выкинули rolleyes.gif

Спустя 2 минуты, 34 секунды (15.07.2012 - 17:24) waldicom написал(а):
Цитата (killer8080 @ 15.07.2012 - 15:09)
Цитата (waldicom @ 15.07.2012 - 17:04)
Нет, только применения этой функции при определенных условиях не достаточно.

Достаточно, по условию вопроса
Цитата
Достаточно ли функции mysql_real_escape_string( для того, чтоб обезопасить текст попадающий в бд?
К примеру у меня есть форма для добавления отзывов. Текст отзыва не фильтруется, а сразу идет в бд

Раз мы имеем дело с субд mysql, и текстовыми данными.
Численные типы данных нужно просто приводить к типу(float, integer)

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

Спустя 14 минут, 35 секунд (15.07.2012 - 17:38) 12345 написал(а):
Ну вот допустим здесь на форуме. как работают комментарии? какую проверку проходят??

Спустя 25 минут, 54 секунды (15.07.2012 - 18:04) Shkiper написал(а):
12345 это ведь не самописный форум. Тут если кто-то заглядывал как он работает тот и скажет а если нет то надо рыться в коде, кто наврятле это будет делать dry.gif

Спустя 4 часа, 52 минуты, 48 секунд (15.07.2012 - 22:57) 12345 написал(а):
Ну что, никто конкретного ответа незнает?

Спустя 1 минута, 37 секунд (15.07.2012 - 22:59) Игорь_Vasinsky написал(а):
смотря что ты допускаешь в БД.

mysql_real_escape_string() не защитит тебя от алерта JS


Спустя 3 минуты, 59 секунд (15.07.2012 - 23:03) 12345 написал(а):
В бд Будет обычный текст (Комментарий)

Спустя 5 минут, 49 секунд (15.07.2012 - 23:08) AlmazDelDiablo написал(а):
При выводе его из базы тоже необходима защита, не забывай об этом.

Например, htmlspecialchars().


Спустя 3 минуты, 26 секунд (15.07.2012 - 23:12) 12345 написал(а):
Цитата
При выводе его из базы тоже необходима защита, не забывай об этом.

Например, htmlspecialchars().
Я это знаю. Я всегда пользуюсь htmlspecialchars() при выводе какой-либо информации введенной пользователем.
Что еще посоветуете использовать с mysql_real_escape_string()? А то тут некоторые говорят, что эта функция не защитит полностью запрос.

Спустя 8 минут, 36 секунд (15.07.2012 - 23:21) Игорь_Vasinsky написал(а):
тебе сказали что при вкл магических кавычках -строку предварительно обработать stripslashes() - т.к. данные уже будут экранированы, а значит искажены.

Спустя 3 минуты, 45 секунд (15.07.2012 - 23:24) 12345 написал(а):
Игорь_Vasinsky у меня отключены магические ковычки.

Спустя 52 секунды (15.07.2012 - 23:25) Игорь_Vasinsky написал(а):
значит если нет никаких "масок" вводимых данных - да.

Спустя 5 минут, 42 секунды (15.07.2012 - 23:31) 12345 написал(а):
В смысле "масок"?

Спустя 5 минут, 59 секунд (15.07.2012 - 23:37) Игорь_Vasinsky написал(а):
всмысли - допустимо вводить только цифры, например.

Спустя 4 минуты, 14 секунд (15.07.2012 - 23:41) VladKamyshanov написал(а):
Использовать надо либо PDO, либо MySqli, в которых предусмотрены так называемые placeholders.

Спустя 7 минут, 26 секунд (15.07.2012 - 23:48) Игорь_Vasinsky написал(а):
и мне теперь забить на сатописание? biggrin.gif biggrin.gif biggrin.gif

Спустя 12 часов, 17 минут, 27 секунд (16.07.2012 - 12:06) VladKamyshanov написал(а):
Цитата
и мне теперь забить на сатописание?

Что это значит? Я советую использовать MySqli или PDO потому, что поддержка модуля mysql_ прекратилась с версии MySql 4.1

Спустя 20 минут, 34 секунды (16.07.2012 - 12:26) Игорь_Vasinsky написал(а):
Цитата
Версия MySQL-клиента: mysqlnd 5.0.7-dev - 091210

странно.. у меня каким то чудом работают функции с префиксом mysql_ ... чудеса.

у mysqli есть свои приимущества - но это не говорит о том что простой мускул хуже.

Спустя 6 часов, 22 минуты, 8 секунд (16.07.2012 - 18:49) waldicom написал(а):
Цитата (Игорь_Vasinsky @ 16.07.2012 - 10:26)
странно.. у меня каким то чудом работают функции с префиксом mysql_ ... чудеса.

Эти функции работают только до 31.08.2012, затем их поддержка выключается по всем серверам (кроме gentoo)

Спустя 11 минут, 52 секунды (16.07.2012 - 19:00) Игорь_Vasinsky написал(а):
waldicom
спс. пошёл прыгать в окно.

Спустя 1 час, 36 минут, 15 секунд (16.07.2012 - 20:37) 12345 написал(а):
Тоесть mysql_ уже не будет работать??????????????????????

Спустя 13 часов, 52 минуты, 36 секунд (17.07.2012 - 10:29) Shkiper написал(а):
waldicom че то мне кажеться тут кое чем попахивает sad.gif
sad.gif sad.gif

Спустя 1 час, 32 минуты, 32 секунды (17.07.2012 - 12:02) killer8080 написал(а):
Цитата (waldicom @ 16.07.2012 - 18:49)
Цитата (Игорь_Vasinsky @ 16.07.2012 - 10:26)
странно.. у меня каким то чудом работают функции с префиксом mysql_ ... чудеса.

Эти функции работают только до 31.08.2012, затем их поддержка выключается по всем серверам (кроме gentoo)

Чё за развод? biggrin.gif

Спустя 1 минута, 30 секунд (17.07.2012 - 12:03) DarkLynx написал(а):
Цитата (killer8080 @ 17.07.2012 - 09:02)
Цитата (waldicom @ 16.07.2012 - 18:49)
Цитата (Игорь_Vasinsky @ 16.07.2012 - 10:26)
странно.. у меня каким то чудом работают функции с префиксом mysql_ ... чудеса.

Эти функции работают только до 31.08.2012, затем их поддержка выключается по всем серверам (кроме gentoo)

Чё за развод? biggrin.gif

+
Откуда инфа.. ссылку ссылку!!

Спустя 9 минут, 39 секунд (17.07.2012 - 12:13) killer8080 написал(а):
Да расслабьтесь, прежде чем выкидывать из php какие то расширения, разработчики вначале помечают их deprecated. И с момента появления этой пометки, до удаления проходит, обычно, не один год. В мануале ничего такого нет, есть только примечание
http://php.net/manual/ru/book.mysql.php
Цитата

robertpas550 at hotmail dot com 05-May-2012 06:02
New users are advised to use MySQL Improved mysqli_ functions rather than the older [replaced] mysql_ functions where applicable and subject the appropriate latest stable versions of Apache, php and MySQL, etc.


Так что спите спокойно smile.gif

Спустя 2 часа, 41 минута, 46 секунд (17.07.2012 - 14:55) waldicom написал(а):
Эммм, ребята, вы чуго? Ну ладно там один повелся, ладно второй... Но все? smile.gif
Только Игорь_Vasinsky молодец, наш человек!

Цитата (Shkiper @ 17.07.2012 - 08:29)
waldicom че то мне кажеться тут кое чем попахивает sad.gif

Тут два совета может быть: во-первых пора креститься, когда кажется. А во-вторых пора переодеваться, когда попахивает.

Спустя 27 минут, 25 секунд (17.07.2012 - 15:22) Shkiper написал(а):
Цитата
пора переодеваться, когда попахивает.

У меня на это 2 мысли:
Вы не поняли смысл этих слов , ибо просто над ними подшучиваете.
Цитата
во-первых пора креститься, когда кажется.

А когда крестися еше больше кажеться.

Спустя 2 часа, 12 минут, 55 секунд (17.07.2012 - 17:35) Игорь_Vasinsky написал(а):
Цитата
А во-вторых пора переодеваться, когда попахивает.

ахахах.

Цитата
Только Игорь_Vasinsky молодец, наш человек!

может быть..может

тока я присел подумать - сколько же придётся переписывать, как мне пришла чёткая мысль: да ну н*х... я ж русский, я русского пока петух жаренный не клюнет - суетиться не начнёт biggrin.gif

Спустя 1 день, 6 часов, 36 минут, 53 секунды (19.07.2012 - 00:12) VELIK505 написал(а):
Цитата (12345 @ 15.07.2012 - 20:03)
В бд Будет обычный текст (Комментарий)

Будет достаточно при занисении в базу обрабатывай функцией mysql_real_escape_string и при выводе htmlspecialchars и всё ничего не будет тогда.
Цитата (12345 @ 16.07.2012 - 17:37)
Тоесть mysql_ уже не будет работать??????????????????????

Он будет работать просто поддержка расширения mysql будет прекращена начиная с php 5.5.
deprecated будет кидать на многие функции. А с php6 скорее всего и вообще не будет.
В любом случае грамотнее использовать mysqli чем устаревший mysql.

Спустя 12 часов, 55 минут, 21 секунда (19.07.2012 - 13:07) killer8080 написал(а):
Цитата (VELIK505 @ 19.07.2012 - 00:12)
Он будет работать просто поддержка расширения mysql будет прекращена начиная с php 5.5.
deprecated будет кидать на многие функции. А с php6 скорее всего и вообще не будет.

Пруфлинк плиз на официальный источник (хабр не в счет) smile.gif

Спустя 9 часов, 40 минут, 12 секунд (19.07.2012 - 22:48) VELIK505 написал(а):
Цитата (killer8080 @ 19.07.2012 - 10:07)
Цитата (VELIK505 @ 19.07.2012 - 00:12)
Он будет работать просто поддержка расширения mysql будет прекращена начиная с php 5.5.
deprecated будет кидать на многие функции. А с php6 скорее всего и вообще не будет.

Пруфлинк плиз на официальный источник (хабр не в счет) smile.gif

На гите пацаны писали которые занимаются разработкой php, олсон предлагал ещё давно.
Да и кому надо поддерживать это старьё если есть улучшенные драйверы для работы с базой и более защищённые.
В любом нормальном проекте скоко я не смотрел вакансий везде просят знания mysqli и даже скоко тестовых заданий не высылали мне везде просят использовать mysqli.
Так же даже у нас в студии мы нанимаем прогера тех задание и знания mysqli, не работаем со старьём.

Спустя 9 часов, 4 минуты, 1 секунда (20.07.2012 - 07:52) Гость_noname написал(а):
Как Попов жить будет без этой функции теперь ? sad.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.