Combattre le spam: Livre d'or sans spam
- De toute façon, il faut de MySQL
- Améliorer la base de données
- Des additionnelles listes aidantes
- Le tableau pour des adresses IP
- Le tableau pour des adresses courriel
- Le tableau pour des adresses IP bloquées
- Le tableau pour la protection contre le surcharge
- Optionnel: Le tableau pour les courriels de confirmation
- Tuyaux pour travailler avec les nouveaux tableaux
De toute façon, il faut de MySQL
Chacun qui opère un livre d'or doit mettle les données quelque part. En règle
générale les bases de données s'y
proposent.
Le problème avec un fichier, c'est que vous deviez définir la structure de vos
fichiers et écrire toutes routines pour traiter les données vous-même. Une base
de données y est plus confortable, parce que le processus gérant la base de
données déjà contient les routines en question et vous seulement avez besoin de
lui signaler ce qu'il doive faire. L'avantage d'un fichier serait que vous
puissiez façonner l'accès comme vous l'avez besoin, mais il faut un certain rang
de connaissance du langage informatique dont vous utilisez. Ceci devient plus
facile avec l'aide d'un gestionnaire de bases de données comme vous devez
seulement savoir comment lui signaler ce qu'il doive effectuer. Le gestionnaire
réglera le reste.
N'importe quelle base de données peut servir comme support de données, dépendant
seulement du système d'exploitation et en fin de compte se diffèrent seulement
des subtilités.
Pour simplifier il est assumé que MySQL est utilisé pour le livre d'or. Lorsque
vous utilisez une différente base de données, il faudrait réajuster quelques
commandes SQL si nécessaire aux besoins de la base de données dont vous
utilisez.
Améliorer la base de données
Vous avez bien sûr ébauché les tableaux nécessaires pour enregistrer les
individuelles entrées de votre livre d'or. Telles données comme l'instant de
création de l'entrée, un nom (au choix un surnom ou un nom réel), l'URL d'une
page d'accueil, le sujet et le contenu propre y relevent. On peut
additionnellement enregistrer une adresse courriel avec chaque message. Ceux-ci
sont des données qu'il faut enregistrer en tout cas si vous voulez incorporer
un livre d'or utilisable.
Il pourrait en outre exister un tableau que contient seulement une seule entrée
dans laquelle toutes les paramètres pour contrôler l'opération du livre d'or
sont inclus. Il y est p. ex. possible de
débrancher la fonction commentaire en
appuyant sur un bouton, par exemple si vous découvrez que le nombre des entrées
inutiles a fortement augmenté. Vous avez alors la faculté de débarrasser votre
livre d'or sans que des nouvelles déconnes apparaissent constamment, et au
moment que vous avez résolu le problème, vous pouvez débloquer la fonction
commentaire sans devoir modifier votre script. Ceci et épargne premièrement du
temps à vous et deuxièmement évite des fautes.
Pour préparer votre livre d'or pour la lutte contre le spam il est nécessaire de créer quelques additionnels tableaux dans lesquels vous enregistrez et les adresses IP et les adresses courriel d'un auteur. C'est par cette voie que vous pouvez barrer un auteur lorsqu'il essaie publier quelconque spam. Vous y pouvez décider comment vous procédez, soit lorsque vous fichez un blocage temporel ou même permanent au folliculaire en question.
en hautDes additionnelles listes aidantes
Il y a des autes tableaux qui se proposent dans lesquels on peut consigner qui
a essayé publier quelque chose combien de fois et en cas de besoin peut faire
barrage aux additionnels messages lorsque vous pensez qu'en soit trop. Vous
pouvez aussi gérer l'envoi des courriels de
confirmation comme ça, parce qu'il y a une entrée créée pour chaque
courriel envoyé, et c'est seulement lorsqu'on clique sur un lien dans le
courriel que le correspondant message est publié.
Vous pouvez tout aussi bien combiner les courriels de confirmation aux listes
d'adresses IP et courriel et débloquer chacun qui a cliqué le lien dans le
courriel pour un certain temps et donc ne recevra plus des courriels de
confirmation en publiant quelque chose, mais ses messages sont acceptés sans
biais s'il a réussi les autres vérifications. Vous pouvez en plus permettre au
propriétaire d'une adresse courriel de la bloquer contre son autre utilisation
si quelqu'un veut l'abuser. On ne peut plus alors utiliser l'adresse en question
pour composer des messages dans ce cas, mais tout essai de l'en utiliser sera
repoussé immédiatement.
Pour créer ces additionnels tableaux, veuillez vous connecter à votre base de données à l'avance. Vous pouvez utiliser le logiciel de contrôle pour la demande de saisie, ou vous utilisez une interface utilisateur graphique. Même des suites bureautiques offrent des facultés à faire accès à une base de données.
en hautLe tableau pour des adresses IP
Ce tableau enregistre les adresses IP des gens qui veulent écrire quelque chose
dans votre livre d'or et sauvegarde leur état. Vous pouvez ainsi consigner s'il
y a la permission de créer des entrées d'une particulière adresse IP ou non.
Ce tableau est créé comme suivant:
Comme il ne rime à rien de tenir des vieilles données à disposition, on retient
l'instant auquel quelqu'un a fait accès d'une particulière adresse IP même si
la durée après laquelle l'entrée en question sera considérée expirée. On donc
peut effacer tels entrées de la base de données au moment que leur durée de vie
est expirée.
Ça prévient des adresses IP étant bloquées trop long comme beaucoup desquelles
seront allouées dynamiquement lorsque des internautes se connectent et libérées
au moment qu'ils se déconnectent. Les allocations donc se changent et une
adresse IP qu'était allouée à un spammeur ou un ordinateur infecté par un bot
pourrait être allouée à un usager régulier la pochaine fois qui n'a rien à voir
avec cela. Si ces adresses ne seraient pas supprimées, la zone des adresses IP
encore ayant accès au livre d'or deviendrait diminuée encore et encore, et en
fin de compte il deviendra inutilisable.
Le champs d'état peut être utilisé pour débloquer les internautes qui ont pu se
réveler être légitime comme ils ne sont plus concernés par quelques de vos
préventions de sécurité. Vous pouvez ainsi vous passer de quelque mesures pour
confirmer qu'un internaute n'est aucun bot pour des adresses IP si marquées.
Il faut le score de spam pour consigner si vous avez àvoir avec spam émanant de
l'adresse IP en question ou non. Mais ceci faut des autres mesures, le résultat
desquelles vous pouvez facilement retenir dans ce champ pour prendre les mesures
si cette valeur devient trop grande.
Le tableau pour des adresses courriel
On enregistre les adresses courriel dans ce tableau dont étaient données en
créant une entrée. Comme on pourrait donner quelconques adresses courriel, il
serait possible que quelqu'un donne une adresse courriel que n'existe pas ou
appartient à quelqu'un différent. Vous y pouvez définir si vous voulez admettre
créer des messages des adresses définies ou non.
Ce tableau est créé comme suivant:
Pour permettre un procédé raisonnable il y a deux champs d'information tenus à
disposition pour consigner deux instants: L'instant de la création de l'entrée
et l'instant quand l'adresse courriel a apparu la dernière fois.
On peut utiliser le dernier champ pour déterminer le moment à partir duquel il
faut considérer l'entrée périmée et doit être effacée. Ceci prévient que des
enregistrements vieillis s'accumulent dans la base de données.
On peut par contre utiliser le premier champ pour ajuster l'intervalle de la
rétention d'un enregistration. Un enregistration peut ainsi être retenu plus
long lorsqu'il détecte l'activité réitérée, p. ex. pour empêcher l'abus des
adresses courriel et prolonger le blocage, mais on peut pareillement donner
un créneau horaire prolongé pendant lequel un usager peut créer des entrées sans
additionnelles vérifications en cas d'une entrée positive.
On a aussi besoin de la date d'expiration pour contrôler l'effacement des
enregistrations âgés. Ça previent que des enregistrements âgés demeurent
existents et donc pourraient conduire aux résultats fautifs. Ceci aussi fait la
part du phénomène que des adresses courriel, auparavant non existant, sont
réservées et des adresses réservées par le passé sont annulées.
Chaque adresse courriel est additionnellement marquée avec un état signalant
lorsqu'on a permission à l'utiliser dansune entrée dans le livre d'or ou non.
Il permet aussi intégrer un moyen de vérifier la validité d'une adresse
courriel.
Ici on a aussi l'option de consigner un score spam pour découvrir l'éventuelle
apparition du spam et répondre raisonnablement à l'essai. La vérification est
effectuée par des autres mesures dont résultat vous pouvez facilement consigner
ici.
Le tableau pour des adresses IP bloquées
Il y a seulement une chose à dire au regard des adresses IP inscrites sur ce
tableau: Vous ne voulez pas permettre aucun contact desquelles. Il y a plusieurs
raisons pour cela, par exemple l'accès indésirable répété à votre livre d'or ou
des autres activités dont vousne voulez pas tolérer comme des attaques
brute-force à des éventuels formulaires de connexion ou des pénétrants
répétitions des essais à inscrire quelque chose dans votre livre d'or – ou même
si des indésirables essais de l'accès aux autres services comme SSH dont vous
pouvez réquisitionner comme critère pour décider lorsque vous voulez permettre
l'accès de particulières adresses IP ou non.
Ce tableau est créé comme suivant:
Premièrement il faut des adresses IP que vous voulez bloquer. Votre livre d'or
ne doit pas prendre ces adresses en compte. Mais il y a beaucoup des essais
d'accès qui peuvent avoir lieu, donc l'ensemble de données pourrait grossir
fortement très rapidement.
Vous pouvez additionnellement donner un masque réseau sous forme d'un nombre
entre 0 et 32 pour bloquer un entier segment réseau d'un coup avec une seule
entrée. Ceci réduit l'ensemble de données d'autant que l'accès indésirable
s'origine des segments réseaux clairement définis. Vous y pouvez fermer
plusieurs sources d'un seul coup.
Le troisième champ peut être utilisé pour contrôler le comportement des entrées
de blocage. Vous pouvez ainsi définir si les entrées sont actives ou inactives
et donc contrôler l'ensemble de contraintes. Vous pouvez en outre établir si
quelques entrées expirent au bout d'un certain temps ou non pour que vous
puissiez réagier appropriément aux problèmes transitoires et permanemment tirer
un verrou aux problèmes persistants. Vous pouvez par ailleurs indiquer qu'il est
permis de montrer le livre d'or, mais le formulaire pour composer une entrée
n'est pas mis en place. Vous ainsi pouvez permettre l'accès limité au livre d'or
pour des particulières zones d'adresses.
L'accès des adresses enregistrées ici, c'est normalement être empêché
entièrement, mais dépendant sur la gravité les entrées sont effacées à plus ou
moins long terme. L'instant auquel l'entrée en question a fait un coup est noté
en combinaison avec une estimation de la problématique du spam. Le plus
problématique l'apparition du spam, le plus tard l'entrée en question expirera.
Mais ce n'est pas seulement le livre d'or dont il faut mettre à contribution,
mais il y a aussi des autres sources comme les essais de cambriolage par SSH,
certains essais de faire accès aux pages web, notamment des scripts CGI ou des
fichiers PHP.
Ce faisant vous pouvez bloquer certaines zones d'adresses ou automatiquement ou
manuellement. Vous pouvez ainsi les bloquer directement au moment de l'accès
pour que vous n'avez pas besoin d'effectuer aucunes additionnelles
vérifications. Il y est nécessaire à intégrer quelques tests à diverses lieus
que cherchent pour des activités douteuses.
Lorsqu'il se produit que les essais d'accès prennent des proportions de menacer
le serveur, il est recommandé de bloquer l'accès de ces zones d'adresses
par le pare-feu
au lieu de cela.
Le tableau pour la protection contre le surcharge
Il permet déterminer lorsque trop d'accès est fait pendant un particulier laps
de temps ou lorsqu'une particulière adresse courriel est utilisée plusieurs
fois en séquence rapide. Il n'y a normalement aucun raison d'essayer
enregistrer quelque chose dans le livre d'or en séquence rapide d'une
particulière adresse IP ou utiliser une particulière adresse courriel pendant
une bref laps de temps. Mais il y est premièrement nécessaire de consigner
cette information.
Ce tableau est créé comme suivant:
Le premier champ prend l'adresse IP dont l'accès était fait, et vous pouvez
consigner l'adresse courriel y utilisé dans le deuxième champ. Le troisième
champ spécifie à quoi l'entrée fait référence, donc vous pouvez mettre et des
adresses IP et des adresses courriel dans le même tableau, mais vous avez
encore la faculté d'extraire les deux séparément.
Le quatrième champ à son tour prend l'instant auquel était mis dans le tableau.
On peut donc créer plusieurs entrées pour la même adresse IP ou courriel si on
fait l'accès plusieurs fois, vous permettant à déterminer combien de fois
quelqu'un a fait accès par le nombre d'entrées. On pourrait ce faciliter à
l'aide d'un compteur, mais il en faudrait enregistrer les instants de l'accès
aussi et les rajuster régulièrement. Mais ça nécessite des additionnelles
charges administratives qu'on pourrait éviter si on enregistre tout accès
individuellement. On peut aussi facilement effacer les entrées expirées de la
liste sans avoir besoin de gauchement manipuler la liste de temps.
Optionnel: Le tableau pour les courriels de confirmation
Lorsque vous voulez introduire un additionnel niveau de protection, vous pouvez
maintenant vérifier si une adresse courriel valide était donnée en composant
un message. Comme des spammeurs aiment donner des adresses courriel fausses,
vous pouvez intercepter touts essais contournant vos filtres au spam. Si
l'adresse n'existe pas, rien ne va se passer de toute façon, et après une
certaine période a passé, le message est rejeté. Le même a cours si l'adresse
en question existe, mais le receveur en ne réagit pas.
Vous pouvez bien sûr introduire des facultés pour permettre le propriétaire
d'une adresse courriel de la protéger de l'utiliser dans le livre d'or. Choisir
cette option établit une explicite inhibition, et lorsque la période de blocage
n'est pas expirée, tout essai à composer une entrée en utilisant cette adresse
courriel comme envoyeur sera rejeté sans commentaires.
Il est nécessaire que le récéveur du courriel de confirmation explicitement
affirme l'action pour publier un message. Vous y mettez un lien dans le
courriel faisant référence à un script qui se soucie de la vérification. Il
pourrait se faire ou directement avec un paramètre donné conjointement avec
l'adresse ou par un masque de saisie lorsqu'on a donné un code fautif ou l'a
oublié.
Après le code est vérifié avec succès l'opération désirée peut être effectuée.
Vous pouvez créer le correspondant tableau comme suivant:
Ils sont et l'adresse courriel et un code qui sont enregistrés ci-dedans pour
qu'on puisse faire une vérification. L'adresse IP dont l'entrée était créée est
enregistrée aussi pour qu'on puisse suivre ce qui était passé à quelle façon et
à quel moment. En outre le numéro courant du message qu'il faut publier est
enregirstrée si bien qu'on peut l'activer après une vérification à succès – ou
rejeté après activement l'opposer. La vérification peut se passer jusqu'à ce
moment et en arrivant à expiration de ce terme le message à vérifier peut être
annulé.
Il y a en outre un champ optionnel pour spécifier la cible du message si vous
avez plusieurs sources de messages outre d'un livre d'or, p. ex. une tribune.
Cette vérification présente deux avantages: Pour montrer un message, il faut premièrement le débloquer explicitement. Ceci prévient à une façon facile que des messages sont composés à titre étranger. On peut deuxièmement annuler le message en question tout de suite si la vérification tourna court, p. ex. lorsque le courriel de vérification est un retour. Mais ceci faudra que le système courriel est configuré qu point que touts messages d'erreur sont interceptés et passés à un script d'analyse qui supprime touts messages en question.
en hautTuyaux pour travailler avec les nouveaux tableaux
Chacun pris isolément, ces tableaux ne sont rien que des additionnels ensembles de données. Mais il faudra modifier le script du livre d'or à une façon qu'il peut faire accès à ces tableaux et réagir appropriément pour les rendre effectif. L'ordre suivante se propose pour obtenir un effet optimal:
- Vérification quant au blocage de l'adresse IP
- Vérification de l'adresse IP
- Vérification de la plausibilité de l'adresse courriel
- Vérification des autres données entrées
- Protection contre le surcharge
- Envoyer le courriel de vérification
Cet ordre s'ensuit du comment les tests coïncident. La vérification la plus simple est, bien sûr, déterminer si une particulière adresse IP est bloquée explicitement et donc il ne faut pas les prendre en considération. Parce que cette liste est normalement statique, vous pouvez rejeter toutes adresses enregistrées ici sans faire des additionnelles analyses. Vous l'achevez avec cette partie du code:
Si l'adresse IP se trouve sur cette liste, la variable $has_ban est mise à 1,
après quoi vous pouvez faire le script réagir appropriément, p. ex. par
signaler à l'utilisateur en question qu'il n'a aucune droit d'accès au livre
d'or – ou alternativement lui présenter le livre d'or mais supprimer le champ
de saisie.
Mais si l'adresse IP en question ne se trouve pas sur la liste de blocage, il
faut prochainement vérifier s'il y a quelques incidents enregistrées pour
laquelle ou non ou elle est par contre attestée comme qualifiée. Mais n'importe
la situation courante, la date d'expiration est reculé en cas d'un coup et
recommence son expiration.
Vous pouvez effectuer cette vérification avec ce fragment de code:
Vous pouvez en toute logique vérifier l'adresse courriel aussi. Ils sont
particulièrement des erreurs logiques que présentent de l'intérêt pour nous,
p. ex. un domaine non-existant. Dans ce cas vous pouvez immédiatement rejeter
l'essai d'inscrire quelque chose dans votre livre d'or.
Vous effectuez la vérification de l'adresse courriel avec la fonction suivante:
Elle fait d'abord une vérification si le format de l'adresse est au fait valide
et extrait le réceveur et le sous-domaine et le TLD pendant dansce cadre. Ce
TLD est ensuite soumis à une vérification s'il est généralement valide (ceci se
passe dans une fonction extérieure), et enfin on essaie résoudre l'entier nom
de domaine.
Lorsqu'il y a une faute découvert par n'importe quelle vérification (format
invalide, TLD non-existant, domaine inconnu), il est indiqué par la valeur
retournée pour que la fonction appelante peut effectuer des mesures
appropriées. On purrait faire cette évaluation comme suivant:
Ce fragment de code appelle la fonction déjà introduite pour vérifier l'adresse
courriel pour commencer, et dépendant du résultat, l'action appropriée est
démarrée.
Si vous pouvez percevoir, on déjà récourt au liste des adresses IP et consigne
des éventuelles anomalies. Vous pouvez donc réagir facilement aux problèmes.
Le prochain tableau à utiliser, il se soucie de la soi-disante
protection contre le surcharge.
Celui-ci fait barrage aux gens faire trop d'entrées automatisées en un rien de
temps.
Le fragment de code suivant se charge de la protection contre le surcharge:
Ce tableau est aménagé à la façon de créer une entrée chaque fois qu'on fait
accès. On peut donc déterminer le nombre des essais d'accès. Il faut ainsi
seulement compter les entrées créées pour une particulière adresse IP. Si on
découvert plus d'entrées que permis, il faudrait rejeter chaque accès jusqu'à
ce que la valeur baisse sous le seuil prédéfinit.
On crée plus d'ensembles de données comme si on crée un seul ensemble de
données pour chaque adresse IP dans lequel on consigne les heures d'accès, mais
traiter la liste y devient plus facile comme on ne doit pas gauchemen manipuler
aucun ensemble de données, mais on peut facilement effacer les éventuelles
entrées obsolescentes. Ceci signifiamment réduit le temps de calcul pour
traiter la liste.