То есть огромная команда разрабатывающая язык программирования пхп, в версии 5.2.x совершила ошибку (все ошибаются, что уж тут горевать) и сайты у которых используется эта версия стали уязвимы. Со временем я понял как закрыться от этого, не обновляя версию пхп. Прописал некоторые правила в htaccessе и сайт перестали взламывать. Но для того чтобы понять как именно взламывают сайт мне пришлось перелопатить огромное количество логов. Вроде бы понятно, что взламывают, но как понять каким способом?
Поделюсь с вами как это удалось сделать. Рецепт конечно не универсальный, но первым делом я всегда провожу именно этот алгоритм действий.
Допустим у вас есть сайт, который кто-то взламывает, и вы не знаете каким способом он это делает. Когда посещаемость сайта низка, то вычислить негодяя намного проще, а если визитов за тысячу в день, это намного сложней. Первым делом, закройте все системные директории и файлы на запись, то есть через htaccess сделайте невозможным запись в эти директории и просто вход тоже невозможным сделайте. На работе сайта это никак не отразится, т.к. пхп скрипты не перестанут выполняться.
И начинайте отслеживать негодяйский запрос с помощью апач-логов. Так как мы закрыли доступ ко всем потенциально взламываемым директориям и файлам, в логах начнут появляться ошибки, то есть документ не будет отдан, в связи с ошибкой доступа и вычислить запрос через который взламывают будет намного проще. Нужна будет смекалка и логика, чтобы это все понять, но зато потом придет опыт и понимание как взламывают ваш сайт.
Когда я вычислил, что меня взламывают запросом ?-s (вас могут другим каким-то взломать) и подобными похожими комбинациями запросов примерно такого же вида (?-file, ?-d). Видимо все это в автоматическом режиме какой-то бот делал, так как запросов в час было примерно в районе 100, то есть каждую минуту он что-то делал с сайтом. Решил поискать информацию в интернете и нашел друзей по несчастью.
Уязвимость была успешно закрыта через htaccess, позвонил хостеру, сказал, что можно взломать примитивнейшим запросом весь сайт. Они очень удивились, но когда поняли, что баг с их стороны, выразили благодарность и подняли какую-то квоту для меня. Особого толка от этой квоты я не заметил, но было приятно, что я оказывается помог каким-то другим сайтам, которые хостились на этом же хостинге. Это мне админ сообщил, после благодарности.
Так как все имеющиеся сейчас способы защиты информации и сайта не дают 100% гарантии, любой опыт будет полезен, надеюсь мой вам пригодится. Прописывайте в своем htaccess следующие две строки.
RewriteRule ^(.*) $1? [L]
Неприятно, конечно, осознавать, что сайты не защищены, но при грамотной настройке правил в htaccessе можно добиться минимизации риска. В интернете существуют эталонные образцы таких файлов, об этом напишу в других своих постах. И всегда, неважно работаете вы вебмастером в офисе или удаленно, делайте бэкапы сайта, каждый день sql, и каждую неделю www бэкап. Это сбережет вам уйму нервов и сэкономит кучу времени, которое можно будет потратить на личную жизнь.