Firstly a little overview - my site uses Wordfence (this is not the issue - just the reason for this to begin with)

-- Even if Wordfence is disabled this should still work. *its just what brought this to light.

And... I have been getting numerous login attempts from different places and IP's using the hidden password recovery, or simply force loading names into the admin page.

I have seen a pattern emerging, whereas the popular name tries are: administrator, wpadmin, admin, wpadministrator, and a few others. Sometimes in the range of 150+ an hour, quite amazing, and annoying at the same time.

Wordfence does an abmirable job of blocking the attempts, however, I've noticed the same naming structure is applied repeatedly. And...Wordfence does its job, blocks the attempt, and themn proceeds to notify me about it - this has led to an inordinate amount of the exact same mail with the exact same login pattern.


So I figured I would add some kind of filtering to the login page by adding this ( part of the larger project - but its where it hanging up ) Not hanging up really, just only recognizes ONE name structure.....

public static function gtfo_admin_login( $login = '' ) {
    if ( 'administrator' != $login ) {
        return false;

    wp_redirect( 'http://www.french-bukkake.com' ); // This is an example.

So if some uses the name administrator, it forwards them to the (sorry-france) xxxx.page

I would like this to use some kind of array, where it uses -

"administrator" , "wpadmin" , "admin" , "wpadministrator" , "etc" , "etc"

Get the idea? and pushes the array items into

if ( 'array-here' != $login ) {
    return false;

So in effect, if different terms are used, it sends them elsewhere - except if the correct login/pwd combinations is used.

OR... possiblty even better it uses an external text file with each name on a new line - and do a call to it some thing like adding a var

$curr_admins = "". file_get_contents( 'https://siteaddress.com/a-dmins.txt' ) ."";

What do you think?

It would read the contents of the text file, regard it as an array and if it finds a match - BOOM - off goes the perpetrator ( I don't think bots can handle a return redirect, to try it again ). So presumably the login pattern should go down somewhat...

  • Wordfence has a brute force protection feature. But regarding the 'array-here' != $login, you're looking for in_array() - in_array( $login, array( 'username', 'list' ) ). – Sally CJ Jul 25 '19 at 22:52
  • Umn.. OK are you saying I edit it to look like this: if ( 'in_array( $login, array( 'username', 'list' ) )' != $login ) { return false; and provided that is correct - the list? Please forgive - this is above my pay-grade :) – Roberta Jul 26 '19 at 0:19
  • As far as the brute force goes, I want to be able to send them off into the void - just to be as annoying to them, as they are to me.... – Roberta Jul 26 '19 at 0:26
  • It's if ( ! in_array( $login, array( 'foo', 'bar', 'etc' ) ) ) { return false; } See here or the official manual for more details about using in_array(). – Sally CJ Jul 26 '19 at 1:22
  • So, to see if I understand - it looks at $login and sees that its an array ( 'cause its told to use in_array ) and 'cause the "list" of items are one after the other, 'cause they are separated by commas... it then does ( compare ) 'cause of the preceding ! and if it finds one - then runs the redirect... am I getting somewhat close :) – Roberta Jul 26 '19 at 2:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.