Our Blog

Опасность отсутствия фильтрации данных

Пару дней назад зашел на один сайт с историями. Сайт я этот уже посещаю несколько лет. Открыл историю, начал читать, и тут что-то меня поманило посмотреть в адресную строку. То, что я там увидел, помогло мне взломать этот сайт за 5 минут.

Не сколько строка нас интересует, сколько php-файл и передаваемые ему параметры. Оно выглядело примерно так:
story.php?stry=123.txt
Я сразу удалил «123.txt» и послал пустой заголовок. В ответ я получил ошибку функции fopen(). Что я как раз о ожидал. Затем я послал в качестве параметра story.php:
story.php?stry=story.php
И как Вы думаете, что я получил в ответ?.. Правильно, php-код файла story.php. В результате чего, я смог получить представление о структуре сайта, и даже получить доступ к базе данных. Имея доступ к базе, я легко смог изменить пароль администратора (к счастью для администратора, пароли в базе были зашифрованы md5 () ). Собственно, я можно сказать взломал сайт, т.к. весь php-код был доступен для чтения, и база была в моих руках. А всего-то можно было поставить фильтрацию входящих данных на переменную $stry. Я не стал ничего плохого делать и написал администратору об этой дыре в безопасности. Этим примером я призываю php-кодеров не пользоваться именами файлов так открыто, и всегда фильтровать входящие от пользователя данные

Comments ( 0 )
    -->