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
Форумы портала PHP.SU :: Версия для печати :: обработка данных с целью защиты
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » обработка данных с целью защиты

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

1. Bio man - 30 Июля, 2011 - 13:51:47 - перейти к сообщению
1 вопрос. как обрабатывать введенные пользователем данные, что бы он не смог совешить sql иньекцию или каким то другим способом нарушить работу скрипта или даже всего проекта...
2 вопрос. какие уязвимости сессий? и как их устранить?
3. koka - 30 Июля, 2011 - 14:09:46 - перейти к сообщению
Bio man, какой драйвер php используете для работы с БД???
Если PDO или mysqli, то для защиты от sql инъекций используйте подготовленные выражения.
Если используете старую версию драйвера, используйте mysql_real_escape _string()

Также проверяйте тип данных, анпример, если в запросе используете число,пользуйтесь функцией is_numeric () для проверки.
Здесь есть хорошая статья по защите от инъекций, там в основном для старого драйвера mysql http://phpfaq[dot]ru/slashes


Для проверки данных от пользователей и удаления нежелательных данных могут подойти htmlspecialchars() и strip_tags()


Ещё хочу спросить у знатоков, защищают ли полностью подготовленные выражения от SQL инъекций???
4. Bio man - 30 Июля, 2011 - 14:34:44 - перейти к сообщению
koka, да хрен его знает, стоит денвер на локалки. спасибо за ответы, будет над чем поработать
(Добавление)
пока такое понимание: число надо проверять или присваивать соответствующий тип данных. строки надо экранировать.
а теперь по экранированию. как? какую функцию использовать или использовать все ф-ции экранирования к проверяемой строке?
а то пишут: используйте это, это или это! а я че программист с 10 летним стажем, от куда мне знать что именно надо!? по мне так что strip_tags(), что htmlentities(), что htmlspecialchars() и другие, почти что одинаковы
5. koka - 30 Июля, 2011 - 16:21:49 - перейти к сообщению
Bio man, ты как соединяешься с БД??? используешь mysql_connect() ???
6. Roler - 30 Июля, 2011 - 17:07:28 - перейти к сообщению
koka пишет:

Ещё хочу спросить у знатоков, защищают ли полностью подготовленные выражения от SQL инъекций???

Да, сборку запроса осуществляется уже при участии БД, так что она знает, что именно является данными, а что управляющими словами.
7. Bio man - 30 Июля, 2011 - 17:32:14 - перейти к сообщению
koka пишет:
Bio man, ты как соединяешься с БД??? используешь mysql_connect() ???
mysql_pconnect()
8. koka - 01 Августа, 2011 - 15:52:00 - перейти к сообщению
Bio man, если есть желание, изучи PDO или mysqli. Как сказали выше, использование подготовленных выражений защитит от SQL инъекциий. Для начала можешь почитать эту статью "Почему следует использовать PDO для доступа к базам данных?" http://ruseller[dot]com/lessons.php?[dot][dot][dot]ub=28&id=610

 

Powered by ExBB FM 1.0 RC1