IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] Bloquer une adresse IP en cas de mot grossier 2: le Retour.


Sujet :

Langage PHP

  1. #21
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Merci pour ton explication Kirkis, je vais approfondir cela (il n'y a pas un tuto sur ce thème qui traine ici ?).

    Je viens de penser à une faille tout de même, sans doute plus difficile à prévoir :

    m o t a b a n n i r

    Là si vous avez une idée...


    **edit**

    En plus il faudrait penser au conjugaison...

    C'est pour cela que je bloque l'IP dès la deuxième fois pour que le gars recommence pas trop sinon forcément il va trouver la faille.
    C'est pas parce que j'ai tort que vous avez raison.

  2. #22
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2005
    Messages : 93
    Points : 87
    Points
    87
    Par défaut
    tu sais, s'ils veulent VRAIMENT écrire des insultes..ils y arriveront de toute manière!

    Maintenant, faut voir jusqu'à quel point tu veux t'en "protéger" et donc, combien de temps/efforts tu veux mettre.


    Merci pour les liens et les explications Kirkis

  3. #23
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    M'en protéger au maximum, vu que c'est un forum sans inscriptions, mais bon dans un premier temps ce qui est déjà fait doit pouvoir un peu colmater la brèche je pense.
    C'est pas parce que j'ai tort que vous avez raison.

  4. #24
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Gné ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $array = array('mot à bannir', 'motabannirs', 'm o t a b a n n i r ');
     
    echo preg_match_all('#\bmotabannir(s|x)?\b#i', implode(' ', $array), $matches);
    Output :
    1

  5. #25
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    J'ai noté ce bout de code dès fois que le cas se produirait. Encore merci Kirkis.

    Je me fendrais bien d'une autre question, plutot que d'ouvrir un nouveau post, vu que le sujet de cette question est proche de celui que nous venons (que Kirkis vient) de traiter :

    J'ai un script qui à l'affichage des messages du forum, va chercher dans la base de donnée les noms des définitions qui se trouvent dans ce message et crée des liens directement vers elles.

    Exemple : bla bla bla patate bla bla bla => Le script crée un lien vers patate.
    Mais si dans le message nous avons bla bla bla patate, bla bla bla ça ne fonctionne plus. Idem si le > d'une balise touche le mot ou bien sur si il se trouve être au pluriel.

    Le code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //on récupère le titre des définitions depuis une requête
    $libelle=$bob[libelle];
    //on place un espace autour des titre récupérés (pour ne pas avoir des faux liens sur des syllabes par exemple)
    $libelle=" $libelle ";
     
    //$contenu contient le contenu de chaque message
    //on remplace chaque mot trouvé dans le contenu par un lien vers la defintions dont le titre est ce mot.
    $contenu = preg_replace('`\b'.$libelle.'\b`','<a href="http://www.monsite.com/'.$bob['urlMotClef'].'.htm">'. $libelle .'</a>', $contenu, 1);
    Voilà vous savez tout, si vous voyez comment faire, ce serait génial ! Merci.

    **edit** et ça ne fonctionne pas non plus en cas de lien a créer pile en début de phrase.
    C'est pas parce que j'ai tort que vous avez raison.

  6. #26
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Dans mon message précédent, j'essayais de répondre mon étonnement face à la faille que tu as notée juste avant, relative aux espaces dans le mot à bannir. Cette faille n'apparaît pas chez moi, qu'en est-il avec le nouveau code ?

    La théorie du \b est de séparer les mots : ajouter une espace devrait être inutile.
    Sinon, tu pourrais simplement enlever les \b dans ce cas, non ?

  7. #27
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Avec les espaces, le mot à bannir passe.


    Je viens d'essayer cela pour les liens (sans grand espoir):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $libelle=$bob[libelle];
    $libelle="#\b$libelle(s|x)?\b#i";
     
    $contenu = preg_replace('`\b'.$libelle.'\b`','<a href="http://www.monsite.com/'.$bob['urlMotClef'].'.htm">'. $libelle .'</a>', $contenu, 1);

    Mais rien qu'entre la ligne deux et le début du preg_replace, il y a comme un problème...
    Ceci dit le script ne bug pas pour autant, il fonctionne simplement aussi mal qu'avant: en cas de ponctuation, les liens ne se créent pas (pour les pluriels c'est encore autre chose...)

    **EDIT**

    Bon je vais marquer résolu pour cette question et poser celle-ci dans un nouveau sujet, parce qu'elles sont quand même très différentes et là on va s'embrouiller les pinceaux.

    Merci pour votre aide
    C'est pas parce que j'ai tort que vous avez raison.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Bloquer une adresse IP avec Norton ?
    Par kurtbosh dans le forum Sécurité
    Réponses: 0
    Dernier message: 09/08/2011, 10h47
  2. Postfix : Bloquer une adresse email à l'expédition
    Par furtif1 dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 23/08/2010, 18h00
  3. Bloquer une adresse MAC dans le dhcp
    Par Sh4dow49 dans le forum RedHat / CentOS / Fedora
    Réponses: 0
    Dernier message: 16/09/2009, 11h38
  4. Réponses: 1
    Dernier message: 18/02/2009, 02h07
  5. Réponses: 17
    Dernier message: 22/01/2006, 09h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo