Der WP TypOnline erfolgreich mit WordPress

  • Kurse
  • Plugins
  • Labor
  • Blog
  • Über
  • Mein Konto
  • Kurse
  • Plugins
  • Labor
  • Blog
  • Über
  • Mein Konto

Auf dieser Seite:

  1. wp-login.php via .htaccess umleiten falls kein PHP-Parameter angegeben wurde
  2. 404-Fehler via .htaccess erzeugen, wenn kein PHP-Parameter angegeben wurde
  3. Ohne Plugin geht es nicht

Inhaltskategorien

  • Allgemeine WordPress Artikel
  • Blogfunk
  • Erfolg
  • Gesundheit
  • Inhalt
  • Künstliche Intelligenz
    • Midjourney
  • Quicknotes
  • SEO (Suchmaschinenoptimierung) in WordPress
    • Technische Suchmaschinenoptimierung (SEO) in WordPress
  • Technik
  • Tipps & Tricks
  • Unkategorisiert
  • WordPress Business
  • WordPress Entwicklung
    • CSS in WordPress
    • Theme Entwicklung
      • Block Theme Entwicklung
    • Unbekannte WordPress Funktionen
  • WordPress News
  • WordPress Sicherheit
Search for:

Brute-Force-Attacken abwehren: wp-login.php umleiten falls kein PHP-Parameter angegeben wurde

Zuletzt aktualisiert am 3. August 2021 | Der WP Typ » WordPress Sicherheit » Brute-Force-Attacken abwehren: wp-login.php umleit...

Viele Seiten kämpfen mit dem Problem der BrutForce-Attacken auf die wp-login.php. WordPress gibt einige nützliche Tipps um dies zu vermeiden.

Gefallen hat mir auch, was das scheinbar sehr populäre Plugin Hide My WP-Plugin macht. Es lässt sich so einstellen, dass die wp-login.php nur aufrufen lässt, wenn ein spezielle Parameter dran hängt. Dieser wiederum lässt sich selbst definieren.

Beispiel
Parameter: access
Wert: yes

Weiterleitung erfolgt bei Aufruf von:
http://meine-beispiel-website.de/wp-login.php

Nicht jedoch bei:
http://meine-beispiel-website.de/wp-login.php?access=yes

Das ganze hat nur einen Nachteil: Der PHP-Parser muss bemüht werden der dann wiederum den Redirect-Header schreibt. Schneller geht es natürlich mit einer .htaccess-Redirect-Anweisung. Vorausgesetzt natürlich Apache kommt zum Einsatz. Und: Das mod_rewrite Modul muss aktiviert sein.

Zeit zu Entern!

Keine Sorge. Sie müssen nicht über die Planke gehen! Ihnen passiert nix! Piratenehrenwort!

Ich segele für Sie durch die endlosen Meere der WordPress News und bereite diese einmal pro Monat kostenlos in einer E-Mail auf.

Swooosh!

Keine Sorge. Sie müssen nicht nach WP-Topia fliegen um an die aktuellsten News zum Thema WordPres Entwicklung zu kommen.

Ich fliege für Sie durch die endlosen Galaxien der WordPress News und bereite diese einmal pro Monat kostenlos in einer E-Mail auf.

wp-login.php via .htaccess umleiten falls kein PHP-Parameter angegeben wurde

<IfModule mod_rewrite.c>	 	 
    RewriteEngine On	 	 
    RewriteCond %{REQUEST_FILENAME} wp-login.php	 	 
    RewriteCond %{QUERY_STRING} !(access=yes)|(action=logout) 	 
    RewriteRule . https://wp-buddy.com [R=301,L,NS]	 	 
</ifModule>

404-Fehler via .htaccess erzeugen, wenn kein PHP-Parameter angegeben wurde

<IfModule mod_rewrite.c>	 	 
    RewriteEngine On	 	
    RewriteCond %{REQUEST_FILENAME} wp-login.php	 	 
    RewriteCond %{QUERY_STRING} !(access=yes)|(action=logout)	 
    RewriteRule . - [R=404,L,NS]	 	 
</ifModule>

Letztendlich kann man in beiden Beispielen access=yes durch jeden beliebigen Parameter ersetzen. Was nicht ersetzt werden darf ist der Parameter action=logout da sonst die Logout-Funktionalität nicht mehr gewährleistet ist.

Hinter ersteres Beispiel lässt sich auch noch das Fehlerdokument angeben, falls gewünscht:

ErrorDocument 404 /error.php?e=404	 	 

Ohne Plugin geht es nicht

Trotz alledem braucht man noch ein kleines WordPress-Plugin welches sich darum kümmert, dass der Parameter auch im Formular selbst auftaucht. Sonst kann WordPress den Login nicht durchführen. Dazu erstellt man eine kleine Datei z.B. mit dem Namen login-limitation.php und schiebt es per FTP in den Ordner /wp-content/plugins/.

Der Inhalt könnte wie folgt aussehen (Download von GitHub):

<?php
/*
Plugin Name: Mein Login-Limitation Plugin
Description: Fügt einen Parameter in das wp-login.php Formular an.
*/

// sorgt dafür, dass der acceess=yes Parameter angehängt wird, wenn das Formular abgesendet wird.
function wpbll_site_url( $url, $path, $scheme, $blog_id ){
    if( 'wp-login.php' ==  $path && 'login_post' == $scheme){
        return 'wp-login.php?access=yes';
    }

    return $url;
}
add_filter( 'site_url', 'wpbll_site_url', 10, 4 );

// sorgt dafür, dass das Formular trotzdem wieder angezeigt wird, auch wenn man ausgeloggt wurde.
function wpbll_logout_redirect( $location, $status ){
    if( false !== stripos($location, 'loggedout=') ){
        return $location . '&access=yes';
    }

    return $location;
}
add_filter( 'wp_redirect', 'wpbll_logout_redirect', 10, 2 );

Plugins

  • Strukturierte Daten & Schema WordPress Plugin

Kurse

  • WordPress Grundkurs
  • Strukturierte Daten Kurs
  • WordPress Plugin erstellen
powered by
Gemacht mit von WordPress Entwickler Florian Simeth
  • Impressum & Datenschutz
  • WordPress Newsletter
  • WordPress Entwickler Newsletter
  • WordPress Jobs und Aufträge