Назад | Перейти на главную страницу

Как защитить сервер Apache от SQL-инъекции

Есть ли эффективный способ защитить веб-сервер от SQL-инъекции, не углубляясь в платформу, расположенную ниже? Любой специальный модуль или конфигурация Apache? Подойдет ли здесь fail2ban?

Apache не подвергается SQL-инъекции, так как это не база данных.

Если вы хотите защитить приложение, которое запускается Apache, которое, в свою очередь, вызывает базу данных, вы можете поставить перед ним WAF (брандмауэр веб-приложений).

Другой подход - использовать mod_security в Apache с набором правил, который ищет SQL в сообщениях / сообщениях.

Fail2ban будет иметь очень ограниченное применение, поскольку он сканирует файлы журналов на наличие признаков попыток грубой силы. SQL-инъекция часто не будет видна в журналах, и даже если журналы будут расширены, чтобы раскрыть эту информацию, они вряд ли принесут большую пользу, поскольку они будут принимать запрос после его обработки.

SQL-инъекция хорошо документирована. Исправьте свои приложения, не обязательно ваш веб-сервер.

CWE-89 подробно классифицирует SQL-инъекции. Обратите внимание, как средства защиты, такие как параметризация или использование достойной библиотеки сохраняемости, находятся в стадии разработки. Фильтр в стиле WAF может выполнять только некоторые функции после развертывания.

В OWASP есть практические ресурсы для правильной разработки приложений. избегая в первую очередь SQL-инъекций.

MITER ATT & ACK классифицирует его как уязвимость общедоступного приложения и перечисляет обновления программного обеспечения и изоляцию приложений среди средств защиты.

В приложении следует предотвратить внедрение SQL (использование параметризованных запросов, экранирование пользовательского ввода, использование хранимых процедур и т. Д.). Другими способами защиты от SQL-инъекций могут быть такие вещи, как mod_security Apache или использование такой службы, как Cloudflare.

Как было написано ранее, вы должны заниматься SQL-инъекциями на уровне приложения. Если вы используете готовое программное обеспечение, такое как wordpress, обновляйте его. Если вы развиваете себя, по возможности используйте подготовленные операторы и никогда не доверяйте вводу пользователя.

Если вы действительно хотите повысить уровень защиты, используйте .htaccess, чтобы запретить любые URL-адреса, содержащие точку с запятой или два дефиса. (; и -), что отловит ... ну может 1/3 атак? Но не надейтесь на это.

Тем не менее, вы можете и должны усилить свой сервер, насколько это возможно, просто имейте в виду, что некоторые ограничения также могут повлиять на законный трафик. Предполагая, что вы используете PHP, проверьте Suhosin.

Раньше мы очищали вводимые данные в приложении до того, как они попадали в базу данных. Может быть, в наши дни все по-другому. Вот пост 11-летней давности, который недавно был активен: https://stackoverflow.com/questions/129677/how-can-i-sanitize-user-input-with-php