Задался вопросом безопастности веб-приложений. Вот вот. Расковырял один движок, нашел там место, что все переменные, постапающие в запрос в базе извне ($_POST например), экранируются дважны, функциями mysql_real_escape_string() и mysql_escape_string(). Имеет ли это смысл делать? Ибо на пхп.су читал, что это идентичные функции.
И еще. Достаточно ли функции htmlspecialchars() для вывода содержимого из базы (а именно логинов юзеров, в которых может содержать все что угодно)?
Спустя 5 минут, 14 секунд (18.10.2010 - 15:47) vasa_c написал(а):
они не совсем идентичны, но дважды пропускать строку через них не стоит.
достаточно, только кодировку указать желательно.
достаточно, только кодировку указать желательно.
Спустя 3 минуты, 43 секунды (18.10.2010 - 15:51) Michael написал(а):
Цитата |
Достаточно ли функции htmlspecialchars() для вывода содержимого из базы |
да, достаточно
Спустя 8 минут, 3 секунды (18.10.2010 - 15:59) AlmazDelDiablo написал(а):
Спасибо большое
А можете подсказать, какие опастности могут подстерегать, помимо sql-инъекций и XSS? В моем условии - пользователи смогут вводить, например, в поле своего логина совершенно любые символы, но не более 16-и символов.

А можете подсказать, какие опастности могут подстерегать, помимо sql-инъекций и XSS? В моем условии - пользователи смогут вводить, например, в поле своего логина совершенно любые символы, но не более 16-и символов.
Спустя 20 часов, 20 минут, 29 секунд (19.10.2010 - 12:19) UnWind написал(а):
AlmazDelDiablo
Shell можно загрузить на сервер, это исполняемый файл который пользователь в дальнейшем может запустить из вне и нанести вред или пользу (В зависимости от намерений) не только базе, сайту но и серверу непосредственно.
Например через Shell скрипты можно исполнять какие нибудь команды Linux, или на shell можно писать полностью автоматизированную программу.
Скрипты shell имеют расширение .sh и особенно в файловых менеджерах данное расширение стоит фильтровать.
Одним словом если есть возможность залить такой скрипт - то у злоумышленника есть все права администратора не только над Вашим сайтом, но и сервером!)
DDOSS атаки - но они относятся в основном только лишь к самому серверу напрямую, но можно произвести при помощи недостатков скрипта.
Т.е. на странице должно быть минимальное количество обращений к базам данных, сам исходный код страницы должен быть минималестичен и четок, база должна быть хорошо сгрупированна и поиск по базе не должен давать большой нагрузки на сервер, одиним словом - иерархия таблиц в базе данных должна быть четка распределена, как того требует оптимизация т.к. если существует страница с такими недостатками, можно произвести ддосс на сервер обновляя её каждый раз с интервалом в 1 секунду, что повесит сервер и сам сайт.
Так же стоит ставить анти спам системы - в разумных целях не засорения базы данных, что бы предотваратить множественные обращения к скрипту и многое другое.
P.S.:> И про переменные хотелось бы дополнить, делайте скрипт таким, что бы подходил и под register globas on и register globas off - у сайта заранее отключите глобальные переменные, но на всякий случай всегда ставьте изначальное значение переменной.
Shell можно загрузить на сервер, это исполняемый файл который пользователь в дальнейшем может запустить из вне и нанести вред или пользу (В зависимости от намерений) не только базе, сайту но и серверу непосредственно.
Например через Shell скрипты можно исполнять какие нибудь команды Linux, или на shell можно писать полностью автоматизированную программу.
Скрипты shell имеют расширение .sh и особенно в файловых менеджерах данное расширение стоит фильтровать.
Одним словом если есть возможность залить такой скрипт - то у злоумышленника есть все права администратора не только над Вашим сайтом, но и сервером!)
DDOSS атаки - но они относятся в основном только лишь к самому серверу напрямую, но можно произвести при помощи недостатков скрипта.
Т.е. на странице должно быть минимальное количество обращений к базам данных, сам исходный код страницы должен быть минималестичен и четок, база должна быть хорошо сгрупированна и поиск по базе не должен давать большой нагрузки на сервер, одиним словом - иерархия таблиц в базе данных должна быть четка распределена, как того требует оптимизация т.к. если существует страница с такими недостатками, можно произвести ддосс на сервер обновляя её каждый раз с интервалом в 1 секунду, что повесит сервер и сам сайт.
Так же стоит ставить анти спам системы - в разумных целях не засорения базы данных, что бы предотваратить множественные обращения к скрипту и многое другое.
P.S.:> И про переменные хотелось бы дополнить, делайте скрипт таким, что бы подходил и под register globas on и register globas off - у сайта заранее отключите глобальные переменные, но на всякий случай всегда ставьте изначальное значение переменной.
_____________
Блог | VK | GitHub | Twitch