web-dev-qa-db-fra.com

Stocker les adresses IP brute-force

Comment puis-je stocker des adresses IP qui tentent de forcer brutalement la section de connexion ou de se connecter trop souvent ou trop fréquemment?

Je dois stocker toutes les adresses IP, puis les utiliser dans une autre application, un peu comme une routine d'apprentissage.

UPDATE # 1:

Voici un scénario (pseudo-code):

function my_wp_login_failed($username) {
    store($username);
    store($ipAddress);
}
add_action('wp_login_failed', 'my_wp_login_failed');

Comment puis-je faire cela pour tous les vecteurs d'attaque?

UPDATE # 2:

J'ai besoin d'adresses IP qui tentent d'accéder au site plus de X fois sont bloquées pendant au moins Y fois. La phase initiale va simplement stocker ces adresses IP.

UPDATE # 3:

J'ai trouvé ce plugin - https://plugins.trac.wordpress.org/browser/wp-fail2ban/trunk/wp-fail2ban.php - qui pourrait faire le travail. Je devrai le réécrire afin de transmettre les informations IP à une base de données ou à un fichier plat.

1
Ciprian

Vous pouvez utiliser l'action wp_login_failed à cette fin ... Elle est appelée à la fin de wp_authenticate, si les informations d'identification de l'utilisateur sont incorrectes.

function my_log_brute_force( $username ) {
    $ip_address = $_SERVER['REMOTE_ADDR'];
    // store that info somewhere
    file_put_contents( 'bf-log.txt', date('c') . "\t{$ip_address}\t{$username}\n", FILE_APPEND );
}
add_action( 'wp_login_failed', 'my_log_brute_force' );

Cet article peut également être utile: Obtenir une adresse IP réelle en PHP

2
Krzysiek Dróżdż