Um sich bei Ihrem WordPress-Blog-Admin-Dashboard anzumelden, ist die wp-login.php die zu besuchende Datei. Viele Spammer verwenden Bruteforce-Passwörter, bis sie es richtig haben. Dies gefährdet nicht nur die Sicherheit Ihres Blogs, sondern verbraucht auch Traffic-Bandbreite.
Sie könnten Ihr Besuchsprotokoll überprüfen und bestimmte IPs sperren. Diese Lösung ist jedoch möglicherweise nicht allgemein und effektiv, wenn die Angriffe von mehreren/verteilten IPs, z. B. DDOS, stammen. Die folgende Lösung ist einfach und dennoch leistungsstark/effektiv. Es funktioniert, indem es die wp-login.php versteckt oder eine zusätzliche Sperre setzt, die nur du kennst.
Der Ansatz besteht darin, die wordpress functions.php (vorzugsweise im Template-Ordner des Child-Themes) zu bearbeiten und die folgenden Zeilen PHP-Code hinzuzufügen :
function login_protection(){
if($_GET['secret'] != 'helloacm') header('Location: <a class="vglnk" target="_blank" href="https://helloacm.com" rel="nofollow"><span>https</span><span>://</span><span>helloacm</span><span>.</span><span>com</span></a>');
}
add_action('login_enqueue_scripts','login_protection');
Speichern Sie einfach die Datei, und wenn Sie sich das nächste Mal bei Ihrem Dashboard anmelden möchten, müssen Sie sie wie folgt aufrufen:
/wp-login.php?secret=helloacm
Sie können das Schlüssel-Wert-Paar entsprechend Ihrem Favoriten ändern. Wenn die geheimen Werte nicht übergeben werden, werden die Benutzer auf die Homepage umgeleitet, aber um es besser zu machen, möchten Sie vielleicht einen 404 – nicht gefunden – Fehler zurückgeben, der die Angreifer verwirren/irreführen kann, so dass sie die Brute-Force-Angriffe aufgeben.
function login_protection(){
if($_GET['secret'] != 'helloacm') {
header($_SERVER['SERVER_PROTOCOL']. ' 404 Not Found', true, 404);
exit("<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">rn<html><head>rn<title>404 Not Found</title>rn</head><body>rn<h1>Not Found</h1>rn<p>The requested URL ". $_SERVER['SCRIPT_NAME']. " was not found on this server.</p>rn</body></html>");
}
}
add_action('login_enqueue_scripts','login_protection');