Несмотря на то, что было опубликовано много хороших предложений, я бы предложил использовать более систематический и методологический подход.Вместо случайной защиты от XYZ-атак имеет смысл сначала выполнить моделирование угроз на веб-сайте, который вы хотите «защитить от хакерских атак».Например, рассмотрим веб-сайт интрасети, который не допускает никакого пользовательского ввода.Только для чтения, но конфиденциальная информация доступна.Стоит ли беспокоиться о внедрении SQL, XSS и т. Д.?Я так не думаю (так как нет пользовательского ввода).Привязка DNS больше касается атаки, о которой стоит беспокоиться.Есть ли на сайте / проверять наличие HOST заголовка?В противном случае сайт может быть уязвим, и конфиденциальные данные могут быть переданы неавторизованным пользователям.
Выполняя моделирование угроз, можно получить четкое представление об основных угрозах для приложения, а на основе оценки рисков - построить стратегию снижения риска.