К примеру у меня есть форма для добавления отзывов. Текст отзыва не фильтруется, а сразу идет в бд через функцию mysql_real_escape_string(. Можно ли НЕ опосатся того, что таким образом сайт может быть взломан?
Спустя 25 минут, 18 секунд (15.07.2012 - 16:39) Shkiper написал(а):
Изходя из личного опыта - НЕТ
Спустя 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) |
регулярки, при не пускать все попало, обрезать, заменять |
пользы никакой, а не удобства обеспечены
Спустя 1 минута, 9 секунд (15.07.2012 - 16:50) 12345 написал(а):
тоесь если я в input введу любой текст, а потом сразуже его в БД буду писать через mysql_real_escape_string();? то могу быть уверен, что сайт НЕ пострадает от этого?
Спустя 2 минуты, 46 секунд (15.07.2012 - 16:53) Shkiper написал(а):
Угу
Спустя 1 минута, 24 секунды (15.07.2012 - 16:54) killer8080 написал(а):
12345
только нужно еще не забывать о существовании такой мелкой пакости, как magic quotes gpc
только нужно еще не забывать о существовании такой мелкой пакости, как magic quotes gpc
Спустя 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) |
Да эту хрен* надо отключать |
Не все хостинги дают такую возможность, потому я и обратил на это внимание ТС
Спустя 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) |
Надо хостинг подбирать |
Ну мы то обсуждаем программирование, а не хостинги. Поэтому нужно учитывать все возможные варианты. Самом собой говеные хостинги нужно обходить стороной
Спустя 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
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 в тексте появятся лишние слеши, что ни есть гуд
Поэтому важно не забывать о таких мелких деталях. К тому же не всегда входные данные нужно писать в БД, иногда и в файл, или просто отправить по почте. По сему эту опцию нужно отключать, если есть возможность. Кстати в 5.4 кажется её уже выкинули
Спустя 2 минуты, 34 секунды (15.07.2012 - 17:24) waldicom написал(а):
Цитата (killer8080 @ 15.07.2012 - 15:09) | ||||
Достаточно, по условию вопроса
Раз мы имеем дело с субд mysql, и текстовыми данными. Численные типы данных нужно просто приводить к типу(float, integer) |
Хорошо, если прям уж по условию вопроса, то достаточно.
Вот только автор потом переймет это для всех других задач, будет поломан и вспомнит вас добрым словом.
Спустя 14 минут, 35 секунд (15.07.2012 - 17:38) 12345 написал(а):
Ну вот допустим здесь на форуме. как работают комментарии? какую проверку проходят??
Спустя 25 минут, 54 секунды (15.07.2012 - 18:04) Shkiper написал(а):
12345 это ведь не самописный форум. Тут если кто-то заглядывал как он работает тот и скажет а если нет то надо рыться в коде, кто наврятле это будет делать
Спустя 4 часа, 52 минуты, 48 секунд (15.07.2012 - 22:57) 12345 написал(а):
Ну что, никто конкретного ответа незнает?
Спустя 1 минута, 37 секунд (15.07.2012 - 22:59) Игорь_Vasinsky написал(а):
смотря что ты допускаешь в БД.
mysql_real_escape_string() не защитит тебя от алерта JS
mysql_real_escape_string() не защитит тебя от алерта JS
Спустя 3 минуты, 59 секунд (15.07.2012 - 23:03) 12345 написал(а):
В бд Будет обычный текст (Комментарий)
Спустя 5 минут, 49 секунд (15.07.2012 - 23:08) AlmazDelDiablo написал(а):
Спустя 3 минуты, 26 секунд (15.07.2012 - 23:12) 12345 написал(а):
Цитата |
При выводе его из базы тоже необходима защита, не забывай об этом. Например, htmlspecialchars(). |
Я это знаю. Я всегда пользуюсь htmlspecialchars() при выводе какой-либо информации введенной пользователем.
Что еще посоветуете использовать с mysql_real_escape_string()? А то тут некоторые говорят, что эта функция не защитит полностью запрос.
Что еще посоветуете использовать с 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 написал(а):
и мне теперь забить на сатописание?
Спустя 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 че то мне кажеться тут кое чем попахивает
Спустя 1 час, 32 минуты, 32 секунды (17.07.2012 - 12:02) killer8080 написал(а):
Цитата (waldicom @ 16.07.2012 - 18:49) | ||
Эти функции работают только до 31.08.2012, затем их поддержка выключается по всем серверам (кроме gentoo) |
Чё за развод?
Спустя 1 минута, 30 секунд (17.07.2012 - 12:03) DarkLynx написал(а):
Цитата (killer8080 @ 17.07.2012 - 09:02) | ||||
Чё за развод? |
+
Откуда инфа.. ссылку ссылку!!
Спустя 9 минут, 39 секунд (17.07.2012 - 12:13) killer8080 написал(а):
Да расслабьтесь, прежде чем выкидывать из php какие то расширения, разработчики вначале помечают их deprecated. И с момента появления этой пометки, до удаления проходит, обычно, не один год. В мануале ничего такого нет, есть только примечание
http://php.net/manual/ru/book.mysql.php
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. |
Так что спите спокойно
Спустя 2 часа, 41 минута, 46 секунд (17.07.2012 - 14:55) waldicom написал(а):
Эммм, ребята, вы чуго? Ну ладно там один повелся, ладно второй... Но все?
Только Игорь_Vasinsky молодец, наш человек!
Только Игорь_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 молодец, наш человек! |
может быть..может
тока я присел подумать - сколько же придётся переписывать, как мне пришла чёткая мысль: да ну н*х... я ж русский, я русского пока петух жаренный не клюнет - суетиться не начнёт
Спустя 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 скорее всего и вообще не будет. |
Пруфлинк плиз на официальный источник (хабр не в счет)
Спустя 9 часов, 40 минут, 12 секунд (19.07.2012 - 22:48) VELIK505 написал(а):
Цитата (killer8080 @ 19.07.2012 - 10:07) | ||
Пруфлинк плиз на официальный источник (хабр не в счет) |
На гите пацаны писали которые занимаются разработкой php, олсон предлагал ещё давно.
Да и кому надо поддерживать это старьё если есть улучшенные драйверы для работы с базой и более защищённые.
В любом нормальном проекте скоко я не смотрел вакансий везде просят знания mysqli и даже скоко тестовых заданий не высылали мне везде просят использовать mysqli.
Так же даже у нас в студии мы нанимаем прогера тех задание и знания mysqli, не работаем со старьём.
Спустя 9 часов, 4 минуты, 1 секунда (20.07.2012 - 07:52) Гость_noname написал(а):
Как Попов жить будет без этой функции теперь ?