Опасность готовых скриптов для сайта


Вот, предположим, находите вы в паблике или приобретаете модуль для вашего интернет магазина для автоматизированной оплаты цифрового товара. Или захотели вы создать новый сайт, приносящий деньги на автомате, купили готовый скрипт или движок для фермы или онлайн игры по выводу денег. Или что-то еще, не обязательно связанное с финансами, но важное или не очень готовое дополнение для сайта. И в один далеко не прекрасный день обнаруживаете, что сайт взломали. Почему это может случиться даже с проверенным готовым расширением?



Начнем с того, что готовые скрипты и расширения, даже если они платные, но широко распространённые, в большинстве случаев хорошо изучены взломщиками. Негодяи хакеры вообще очень любят ковыряться в исходных кодах, даже если, казалось бы, их нельзя взломать. Зачем? А затем, что зная исходный код PHP-файла и структуру базы, гораздо проще можно получить несанкционированный доступ к этой самой базе.

Не верите? Давайте я приведу простой пример.

Возьмем простейшую функцию генерации специального идентификатора, с помощью которого можно сбросить кошелек в одной онлайн игре. Вот она

function create_guid()   //Генерация GUID
{     
    static $guid = '';
     $uid = uniqid("", true);
     $data = '';
     $data .= $_SERVER['REMOTE_ADDR'];
     $data .= $_SERVER['REQUEST_TIME'];
     $data .= $_SERVER['HTTP_USER_AGENT'];    
     $data .= $_SERVER['REMOTE_PORT']; 
     $hash = strtoupper(hash('uu546', $uid . $guid . md5($data)));
     $guid = substr($hash,  0,  8).
         '-'.substr($hash,  8,  4).
         '-'.substr($hash, 12,  4).
         '-'.substr($hash, 20,  4).
         '-'.substr($hash, 8, 12);
     return $guid;
}
Здесь берутся параметры браузера посетителя, хэшируются с помощью соли и получается уникальный идентификатор. Затем по некой ссылке с помощью параметра гет (которым и является этот код) можно сбросить кошелек. Это одна часть реального плана взломщика, с помощью которого он ломал аккаунты на сайте одного моего заказчика.

В чем здесь ошибка заказчика? Дело в том, что надо как минимум изменить соль – строка номер 10, параметр номер 1 (uu546). Зная эту функцию можно самостоятельно сгенерировать необходимый код и сменить кошелек. Конечно, это только один этап плана, но он один из ключевых.

Бездумно скопировав данный код вы получаете потенциальную уязвимость на сайте.

Обращаю внимание, что это относится именно к готовым скриптам, как я и указал в начале. Если вы закажете разработку на заказ, то данной проблемы не будет. Будут другие – но ничто в нашем мире не идеально.

Если у вас есть сомнения в безопасности готового скрипта или сайта, то вы можете обратиться ко мне. За небольшую плату я проверю код и вынесу свой вердикт. Кроме этого я помогу вам с программированием на PHP и JavaScript.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, php, скрипты, информационная безопасность, сайтостроение




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




А так ли вредно курить?
JQuery анимации
Урок 1. Введение в WPF, основные концепции