WordPress.org

Ready to get started?Download WordPress

Forums

WP fail2ban
Plugin could not be activated (3 posts)

  1. apostlepoe
    Member
    Posted 1 year ago #

    Plugin could not be activated because it triggered a fatal error.
    Parse error: syntax error, unexpected T_FUNCTION in
    hermes/bosoraweb100/.../wp-fail2ban/wp-fail2ban.php on Line 30.

    WordPress 3.5.1
    PHP 5.3.13

    http://wordpress.org/extend/plugins/wp-fail2ban/

  2. lklawless
    Member
    Posted 10 months ago #

    I've got the same error.

  3. michaeldaly
    Member
    Posted 6 months ago #

    [SOLVED]
    with me this was because my PHP version was earlier than PHP 5.3
    I was running 5.2.10 (run 'php - version' on the command line)
    Apparently PHP 5.3 code changed significantly. This post offers a workaround:
    http://wordpress.org/support/topic/older-php-problems
    It references code here, so as to replace the code in the plugin file ' wp-fail2ban.php':
    http://pastebin.com/qLCtmMwz

    In case this pastebin file has disappeared, here it is, without the introductory information from Charles Lecklider:

    <?php
    function f2b_openlog()
    {
            openlog('wordpress('.$_SERVER['HTTP_HOST'].')',
                             LOG_NDELAY|LOG_PID,
                             defined(WP_FAIL2BAN_LOG) ? WP_FAIL2BAN_LOG : LOG_AUTH);
    }
    
    function f2b_bail()
    {
            ob_end_clean();
            header('HTTP/1.0 403 Forbidden');
            header('Content-Type: text/plain');
            exit('Forbidden');
    }
    
    function f2b_remote_addr()
    {
            if (defined('WP_FAIL2BAN_PROXIES')) {
                    if (array_key_exists('HTTP_X_FORWARDED_FOR',$_SERVER)) {
                            $ip = ip2long($_SERVER['REMOTE_ADDR']);
                            foreach(explode(',',WP_FAIL2BAN_PROXIES) as $proxy) {
                                    if (2 == count($cidr = explode('/',$proxy))) {
                                            $net = ip2long($cidr[0]);
                                            $mask = ~ ( (2 ^ (32 - $cidr[1])) - 1 );
                                    } else {
                                            $net = ip2long($proxy);
                                            $mask = -1;
                                    }
                                    if ($net == $ip & $mask) {
                                            return (false===($len = strpos($_SERVER['HTTP_X_FORWARDED_FOR'],',')))
                                                            ? $_SERVER['HTTP_X_FORWARDED_FOR']
                                                            : substr($_SERVER['HTTP_X_FORWARDED_FOR'],0,$len);
                                    }
                            }
                    }
            }
    
            return $_SERVER['REMOTE_ADDR'];
    }
    
    function f2b_blocked_users($user, $username, $password){
            if (!empty($username) && preg_match('/'.WP_FAIL2BAN_BLOCKED_USERS.'/i', $username)) {
                    f2b_openlog();
                    syslog(LOG_NOTICE,"Blocked authentication attempt for $username from ".f2b_remote_addr());
                    f2b_bail();
            }
            return $user;
    }
    
    function f2b_block_user_enumeration($redirect_url, $requested_url){
            if (intval(@$_GET['author'])) {
                    f2b_openlog();
                    syslog(LOG_NOTICE,'Blocked user enumeration attempt from '.f2b_remote_addr());
                    bail();
            }
            return $redirect_url;
    }
    
    function f2b_login($user_login, $user){
            f2b_openlog();
            syslog(LOG_INFO,"Accepted password for $user_login from ".f2b_remote_addr());
    }
    
    function f2b_login_failed($username){
            f2b_openlog();
            syslog(LOG_NOTICE,"Authentication failure for $username from ".f2b_remote_addr());
    }
    
    if (defined('WP_FAIL2BAN_BLOCKED_USERS')) {
            add_action( 'authenticate','f2b_blocked_users',1,3);
    }
    
    if (defined('WP_FAIL2BAN_BLOCK_USER_ENUMERATION')) {
            add_filter( 'redirect_canonical','f2b_block_user_enumeration',10,2);
    }
    
    add_action( 'wp_login','f2b_login',10,2);
    add_action( 'wp_login_failed','f2b_login_failed');

Topic Closed

This topic has been closed to new replies.

About this Plugin

About this Topic