Hallo liebe Forumer,
wie ihr meiner Überschrift entnehmen könnt, habe ich seid einiger Zeit post-requests in meinem Log und zwar nicht die, die für meine Formulare erforderlich sind sondern seht selbst, die werden einfach übertragen:
2020-08-05 18:45:05 Error 52.142.53.130 404 GET /.env HTTP/1.0 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36 1.22 K Apache-Zugriff
2020-08-05 18:45:06 Error 52.142.53.130 404 POST / HTTP/1.0 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36 921 Apache-Zugriff
2020-08-05 18:45:05 Error 52.142.53.130 404 GET /.env HTTP/1.0 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36 1.22 K Apache-Zugriff
2020-08-05 18:45:06 Access 52.142.53.130 200 POST / HTTP/1.0 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36 22.2 K Apache-Zugriff
Die IP wird nun geblockt, aber ich habe hier : https://perishablepress.com/protect-post-requests/ von schädlichen post requests gelesen.
Sodann habe ich gleich mal folgendes meinem htaccess hinzugefügt:
# whitelist POST requests
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} !/hiergehtszumeinloggen.php [NC]
RewriteCond %{REQUEST_URI} !/hiergehtszumregistrieren.php [NC]
RewriteCond %{REQUEST_URI} !/ichhabemeinpasswortvergessen.php [NC]
RewriteCond %{REQUEST_URI} !/meinaccountverifizieren.php [NC]
RewriteCond %{REQUEST_URI} !/resettemeinpasswort.php [NC]
RewriteCond %{REMOTE_ADDR} !127.0.0.1
RewriteRule .* - [F,L]
</IfModule>
(die php-Namen habe ich mal geändert!)
Also muss ich jede php die auch eine Übertragung veranlasst (also ein post) dort eintragen.
Jedenfalls funktioniert es wohl, denn alle Funktionen: "Das einloggen, das registrieren, das passwort verifizieren und der reset" uvm. funktionieren reibungslos.
Ich habe auch gelesen das das kürzer geht:
# allow POST based on referrer
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} /hiergehtszumeinloggen\.php
RewriteCond %{REQUEST_URI} /hiergehtszumregistrieren\.php
RewriteCond %{REQUEST_URI} /ichhabemeinpasswortvergessen\.php
RewriteCond %{REQUEST_URI} /resettemeinpasswort\.php
RewriteCond %{HTTP_REFERER} !(.*)meinetollehomepage.de(.*) [OR]
# RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule .* - [F,L]
</IfModule>
Was ist nun richtig von beiden.
Das zweite Beispiel will bei mir irgendwie nicht funktionieren, ich bekomme da immer eine 403 Meldung.
Oder ist es da wichtig bei der Addy "https" davorzuschreiben?
Was ist nun von beiden richtig?
Kennt ihr das mit den Malicious POST Requests?
Vielen Dank!
Der einsiedelnde