programmes Python permettent aux utilisateurs de se connecter en utilisant les données d'authentification . Afin d'éviter le piratage, vous devez inculquer une sorte de log-in limite pour éviter les attaques par force brute , qui sont caractérisés par des pirates entrant plusieurs mots de passe jusqu'à ce qu'ils trouvent la bonne. Dans ce cas, mettre de côté une connexion dans le fichier journal pour suivre la quantité de l'utilisateur tentatives de connexion à travers une certaine période de temps. Instructions
1
créer un script de log :
>>> def login ( nom, passwd ) : . . . /* vérifie base de données pour le nom d'utilisateur et * /. . .
2
Lire à partir du script du journal , qui contient les informations de tentatives de connexion . Cela devrait se faire avant toutes les requêtes de la base de données :
>>> def login ( nom, passwd ) : . . . f = open ( '/var /log /login.txt ') . . . contenu = f.read ()
3
Check tentatives de connexion par la recherche de l'indice du nom et de la lecture de la ligne. Ce fichier suppose que le fichier journal suivra un format dans lequel chaque ligne représente un utilisateur et est formaté comme " username = login_attempts . " Par exemple, si Bob essayé de se connecter à deux reprises, sa ligne se lirait "Bob = 2 ».
. . . contenu = f.read (). . . index = contents.find (nom). . . tandis que le contenu [index] = '' : . . . index + = 1 . . . index + = 2 . . . tentatives = contenu [index]
4
Si un utilisateur fait plus tentatives de connexion supérieur à celui autorisé , refuser l'accès. Sinon, ajoutez une des tentatives et de stocker dans un fichier . Dans cet exemple, la limite de tentatives de connexion est de quatre :
. . . si les tentatives == '4 ' : . . . imprimer " Trop de tentatives avortent , ...». . . retourner . . . autre : . . . /* Base de données de requête pour les informations de connexion * /
5
Ajouter un log-in tentative à la liste:
. . . x = int ( contenu [index] ) . . . x + = 1 . . . contenu [index] = str ( x )