Я знаю, что мои сайты были взломаны с помощью автозапуска libwww-perl
BOT/0.1 (BOT for JCE)
и Gecko/20100101
Есть ли способ, чтобы все мои веб-сайты были доступны только для настоящих браузеров, а не для этих автоматических скриптов.
Я мог бы дать вам списки бесчисленных защит, которые вы могли бы использовать (ограничение пользовательских агентов, отображение вашего контента с использованием JavaScript из файлов XML, капчи - какой отличный способ разозлить вашу аудиторию!), Но они только собираются предотвратить неизбежно, пока они не будут думать о том, как их обойти.
Лучше вбить ставку в самое сердце проблемы, чем пытаться поставить защиту за защитой. Если можете, посмотрите приложение и попытайтесь выяснить, как они смогли проникнуть внутрь, и попытайтесь залатать дыры. Наиболее очевидное место для поиска - это входные данные формы - передаются ли они в строки SQL без предварительного анализа? Создают ли они строки SQL вместо использования подготовленных операторов (которые с самого начала убивают попытки SQL-инъекций)? Если что-то можно исправить, делайте. Если это чужой продукт, создайте патч и отправьте его им.
Худшее, что вы можете сделать в сфере безопасности, - это предположить, что с вами этого не случится. Черви, вирусы и автоботы обычно недостаточно умны, чтобы понять, что ваш маленький сайт не представляет угрозы.
Будьте умны, будьте осторожны, знайте.
Нет, вы не можете гарантировать, что ваши веб-сайты доступны только для подлинных браузеров. Это связано с тем, что единственными источниками данных, которые вам нужны для определения платформы клиента и веб-браузера, являются заголовки запросов, которые могут быть полностью подделаны хакерами.
Например, хакер может использовать такой инструмент, как Fiddler, для отправки настраиваемого HTTP-запроса на ваш веб-сайт с поддельным User-Agent
заголовок запроса, который выглядит так же, как Internet Explorer, Chrome, Firefox, Googlebot или какой-либо другой HTTP-клиент. Таким образом, очень сложно, если не невозможно, отличить хакера от законного пользователя на основе данных HTTP-запроса.