Fail2ban kann das jedenfalls auch selbständig durch entsprechend konfigurierte Logfile-Analyse. Ein Kompromiss wäre, dass die Anwendung ein Audit-Log oder ähnliches führt, das dann vom Fail2ban ausgewertet wird.
Einfach das error-Log missbrauchen:
<?php
error_log ("mutmasslicher angriff:sql-injection");
Resultierender Eintrag:
[Sat Apr 14 12:44:12.611511 2018] [:error] [pid 25477] [client 77.178.32.244:34114] mutmasslicher angriff:sql-injection, referer: https://home.fastix.org/Tests/
Der passende Regex für apache-overflows.conf wäre dann wie folgt hinzuzufügen: (ungetestet)
failregex = ^%(_apache_error_client)s ((AH0013[456]: )[…]
^%(_apache_error_client)s .*mutmasslicher angriff.*$
Außerdem ist apache-overflows in der jail.conf zu aktivieren und das Limit für die Duldung recht gering anzusetzen:
[apache-overflows]
enabled = true
port = 0:65535
# während der Testphase:
# port = http,https
logpath = %(apache_error_log)s
maxretry = 1
bantime = 36000