EOMY.NET
Хостинг EOMY.NET: Форум поддержки
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
RSS Feed  

Фильтрация входных данных.
На страницу 1, 2, 3  След.
 
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB
Фильтрация входных данных.
Автор Сообщение
lazutov
while (1==1);
Последний герой


Зарегистрирован: 30.04.2007
Сообщения: 3840

111220 Монеты

СообщениеДобавлено: Вт, 30 Сен, 2008 17:45    Заголовок сообщения: Фильтрация входных данных. Ответить с цитатой

Здравствуйте.
Чем Вы лично в своих скриптах проверяете, например, выведенный пользователем отзыв в гостевую книгу?
Достаточно ли htmlspecialchars и addslashes при работе с Mysql?
Спасибо.
_________________
сервис DNS | разные http, DNS и прочие утилиты
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Артур
11 1110 1000
11 1110 1000


Зарегистрирован: 22.01.2008
Сообщения: 1159
Откуда: Lietuva
7191 Монеты

СообщениеДобавлено: Вт, 30 Сен, 2008 17:49    Заголовок сообщения: Ответить с цитатой

Чтоб вырезать теги я использую
strip_tags()
_________________
Скрипты [PHP/JS] на заказ, в ЛС, недорого.

SAPE
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Alek$
11 1110 1000
11 1110 1000


Зарегистрирован: 24.11.2007
Сообщения: 1136
Откуда: Новосибирск
26695 Монеты

СообщениеДобавлено: Ср, 01 Окт, 2008 06:26    Заголовок сообщения: Ответить с цитатой

uforum
где-то читал, что strip_tags() не всегда корректно вырезает теги.

lazutov
для предотвращения sql инъекций рекомендуется пользоваться mysql_real_escape_string(), а от XSS достаточно htmlspecialchars()
_________________
Самая страшная ошибка - это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
phpBB3 [Russian]
Антисоциальный блог
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Александр Михалицын
Согнул ложку
Согнул ложку


Зарегистрирован: 22.08.2008
Сообщения: 860

18841 Монеты

СообщениеДобавлено: Ср, 01 Окт, 2008 07:21    Заголовок сообщения: Ответить с цитатой

Alek$,
хм, а можно ли совершить SQL-инъект
если входящие данные обрабатываются через addSlashes?
Мне кажется нет...
_________________
Пригласительные коды
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Gosudar
Два пингвина
Два пингвина


Зарегистрирован: 08.04.2007
Сообщения: 431

8014 Монеты

СообщениеДобавлено: Ср, 01 Окт, 2008 08:31    Заголовок сообщения: Ответить с цитатой

Александр Михалицын можно.
addSlashes все лишь экранирует спецсимволы.
_________________
R3-born
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
[LP]LordPro.teus
Призрак Лорда
Призрак Лорда


Зарегистрирован: 26.07.2007
Сообщения: 5092

42282 Монеты

СообщениеДобавлено: Ср, 01 Окт, 2008 10:39    Заголовок сообщения: Ответить с цитатой

А при простом mysql_escape_string, если все значения идут в апострофах (в них вроде всякая бяка вроде \n не может сработать принципиально...)?
_________________

До выхода LiteDiary 0.3.0: парам-пам-пам-пам! Она уже здесь!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Александр Михалицын
Согнул ложку
Согнул ложку


Зарегистрирован: 22.08.2008
Сообщения: 860

18841 Монеты

СообщениеДобавлено: Ср, 01 Окт, 2008 12:16    Заголовок сообщения: Ответить с цитатой

Gosudar,
ну вот.. тогда смысл юзать
всякие специфичные функции?
Есть аддслашес его и юзаем!
А все эти стрип тагс итд
это медленнее работает! Wink
_________________
Пригласительные коды
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
[LP]LordPro.teus
Призрак Лорда
Призрак Лорда


Зарегистрирован: 26.07.2007
Сообщения: 5092

42282 Монеты

СообщениеДобавлено: Ср, 01 Окт, 2008 12:24    Заголовок сообщения: Ответить с цитатой

Александр Михалицын
тебе только что обьяснили, что провести SQL-иньекцию при addslashes - раз плюнуть Wink
_________________

До выхода LiteDiary 0.3.0: парам-пам-пам-пам! Она уже здесь!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Gosudar
Два пингвина
Два пингвина


Зарегистрирован: 08.04.2007
Сообщения: 431

8014 Монеты

СообщениеДобавлено: Ср, 01 Окт, 2008 12:25    Заголовок сообщения: Ответить с цитатой

В большинстве случаев addslashes достаточно. Но...
Вот кстати ещё специфический пример когда addslashes не помогает - http://habrahabr.ru/blogs/webdev/40458/
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2066
Откуда: Самара
11733 Монеты

СообщениеДобавлено: Пт, 03 Окт, 2008 02:55    Заголовок сообщения: Ответить с цитатой

Кстати я против SQL инекций кроме подобных функций использую раздление прав поьзователей, т.е. у меня есть пользователь, который имеет право только на команду Select в одной из MySQL баз, есть пользователь который имеет права только на команду Insert и т.д. В результате даже если сумеют сделать SQL инекцию команда скорее всего просто не выполнится (так как очень редко команда инекции совпадает с командой запроса), кроме того я никогда не даю одному пользователю прав больше чем на одну базу и стараюсь разделять данные, которые никогда не меняются или меняются только админом (типа страниц сайта или паролей) и данные, которые могут менять пользователи типа коментариев и соответсвенно делаю две разные базы с разными пользователями, в результате SQL инекция может изменить только неболшую часть данных. Естественно, скрипты админа спрятаны в директории с паролем и сами содержат кучу проверок до первого выполнения любого SQL запроса.

P.S. Конечно, иногда приходится делать несколько соединений на странице к MySql, зато это окупается безопасностью
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Alek$
11 1110 1000
11 1110 1000


Зарегистрирован: 24.11.2007
Сообщения: 1136
Откуда: Новосибирск
26695 Монеты

СообщениеДобавлено: Пт, 03 Окт, 2008 05:52    Заголовок сообщения: Ответить с цитатой

Веденин
это уже параноидальный подход. Пользователей SELECT и INSERT стоит объединить как минимум для того, чтобы не создавать всякий раз два соединения, поскольку это довольно ресурсоемкая операция.
_________________
Самая страшная ошибка - это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
phpBB3 [Russian]
Антисоциальный блог
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2066
Откуда: Самара
11733 Монеты

СообщениеДобавлено: Пт, 03 Окт, 2008 05:59    Заголовок сообщения: Ответить с цитатой

Ну во первых ситуации когда надо сразу делать в одном скрипты и insert и select не так уж часто встречаются, чаще надо или выбрать данные или занести их в БД (например добавление пользователем комментария это один скрипт, а получение страницы совсем другой ), конечно все зависит от структуры БД и сайта, но как минимум если не нужена например команда update, то не в коем случае не надо давать прав на неё (а уж не говорю о create, delete и alter table или создание новых пользователей).

P.S. Если в одном скрипте нужен сразу и insert и select объединить права можно, но в других скриптах лучше пользоватся отдельнымы правами.

P.P.S. Я работаю с SQL уже пять лет и ИМХО всегда лучше потерять чуть чуть производительности, чем допустить дыру в безопасности
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Alek$
11 1110 1000
11 1110 1000


Зарегистрирован: 24.11.2007
Сообщения: 1136
Откуда: Новосибирск
26695 Монеты

СообщениеДобавлено: Пт, 03 Окт, 2008 06:13    Заголовок сообщения: Ответить с цитатой

Веденин
два соединения с mysql - это не чуть-чуть. Это в два раза.
А насчет минимализации прав - тут полностью согласен.
_________________
Самая страшная ошибка - это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
phpBB3 [Russian]
Антисоциальный блог
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2066
Откуда: Самара
11733 Монеты

СообщениеДобавлено: Пт, 03 Окт, 2008 06:48    Заголовок сообщения: Ответить с цитатой

Цитата:
два соединения с mysql - это не чуть-чуть. Это в два раза.

Вот результаты замеров соединения к БД MySQL,

Первое соединение: 0.0042 - 0.0053 сек
Простой Select: 0.0015 - 0.0046 сек
Второе соединение: 0.0004 сек!!!

первое соединение (причем с созданием спец. класса для работы с БД) с правами select устанавливается примерно за одно и тоже время, время select'а "прыгает" от 30% от времени соединения до 100% (выбор с группировкой и сортировкой из примерно 10 тыс записей без индекса),однако второе соединение c правами insert устанавливается в 10 раз быстрее первого.
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Alek$
11 1110 1000
11 1110 1000


Зарегистрирован: 24.11.2007
Сообщения: 1136
Откуда: Новосибирск
26695 Монеты

СообщениеДобавлено: Пт, 03 Окт, 2008 07:00    Заголовок сообщения: Ответить с цитатой

Веденин
зато потребление памяти ровно в два раза Wink
В общем, если вы пишете что-то мега важное и мега секретное, то такой подход оправдан. А в обычной гостевой книге, скажем, он излишен.
_________________
Самая страшная ошибка - это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
phpBB3 [Russian]
Антисоциальный блог
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB Часовой пояс: GMT
На страницу 1, 2, 3  След.
Страница 1 из 3

 


EOMY TOP 100 Rambler's Top100   Рейтинг@Mail.ru    



Powered by phpBB © 2001, 2005 phpBB Group


Рейтинг SIMPLETOP.NET