51 votes

Mauvais mots de Filtre

Pas très technique, mais... je dois mettre en œuvre un mauvais mots de filtre dans un nouveau site que nous développons. J'ai donc besoin d'un "bon" mauvais mots de la liste pour nourrir ma db avec... tout conseil / direction? En regardant autour avec google j'ai trouvé ceci , et c'est un début, mais rien de plus.

Oui, je sais que ce genre de filtres sont facilement échappé... mais le client est le client !!! :-)

Le site aura pour filtrer la fois en anglais et en italien, mais pour l'italien, je peux demander à mes collègues pour m'aider avec une communauté construite liste de "parolacce" :-) - un e-mail suffit.

Merci pour toute aide.

57voto

AgentConundrum Points 10107

Méfiez-vous des erreurs classiques .

39voto

UnkwnTech Points 21942

Je n'ai vu aucune langue spécifiée, mais vous pouvez l'utiliser pour PHP. Cela générera un RegEx pour chaque travail instered, de sorte que même les fautes d'orthographe intentionnelles (c'est-à-dire @ss, i3itch) soient également détectées.

 <?php

/**
 * @author unkwntech@unkwndesign.com
 **/

if($_GET['act'] == 'do')
 {
    $pattern['a'] = '/[a]/'; $replace['a'] = '[a A @]';
    $pattern['b'] = '/[b]/'; $replace['b'] = '[b B I3 l3 i3]';
    $pattern['c'] = '/[c]/'; $replace['c'] = '(?:[c C (]|[k K])';
    $pattern['d'] = '/[d]/'; $replace['d'] = '[d D]';
    $pattern['e'] = '/[e]/'; $replace['e'] = '[e E 3]';
    $pattern['f'] = '/[f]/'; $replace['f'] = '(?:[f F]|[ph pH Ph PH])';
    $pattern['g'] = '/[g]/'; $replace['g'] = '[g G 6]';
    $pattern['h'] = '/[h]/'; $replace['h'] = '[h H]';
    $pattern['i'] = '/[i]/'; $replace['i'] = '[i I l ! 1]';
    $pattern['j'] = '/[j]/'; $replace['j'] = '[j J]';
    $pattern['k'] = '/[k]/'; $replace['k'] = '(?:[c C (]|[k K])';
    $pattern['l'] = '/[l]/'; $replace['l'] = '[l L 1 ! i]';
    $pattern['m'] = '/[m]/'; $replace['m'] = '[m M]';
    $pattern['n'] = '/[n]/'; $replace['n'] = '[n N]';
    $pattern['o'] = '/[o]/'; $replace['o'] = '[o O 0]';
    $pattern['p'] = '/[p]/'; $replace['p'] = '[p P]';
    $pattern['q'] = '/[q]/'; $replace['q'] = '[q Q 9]';
    $pattern['r'] = '/[r]/'; $replace['r'] = '[r R]';
    $pattern['s'] = '/[s]/'; $replace['s'] = '[s S $ 5]';
    $pattern['t'] = '/[t]/'; $replace['t'] = '[t T 7]';
    $pattern['u'] = '/[u]/'; $replace['u'] = '[u U v V]';
    $pattern['v'] = '/[v]/'; $replace['v'] = '[v V u U]';
    $pattern['w'] = '/[w]/'; $replace['w'] = '[w W vv VV]';
    $pattern['x'] = '/[x]/'; $replace['x'] = '[x X]';
    $pattern['y'] = '/[y]/'; $replace['y'] = '[y Y]';
    $pattern['z'] = '/[z]/'; $replace['z'] = '[z Z 2]';
    $word = str_split(strtolower($_POST['word']));
    $i=0;
    while($i < count($word))
     {
        if(!is_numeric($word[$i]))
         {
            if($word[$i] != ' ' || count($word[$i]) < '1')
             {
                $word[$i] = preg_replace($pattern[$word[$i]], $replace[$word[$i]], $word[$i]);
             }
         }
        $i++;
     }
    //$word = "/" . implode('', $word) . "/";
    echo implode('', $word);
 }

if($_GET['act'] == 'list')
 {
    $link = mysql_connect('localhost', 'username', 'password', '1');
    mysql_select_db('peoples');
    $sql = "SELECT word FROM filters";
    $result = mysql_query($sql, $link);
    $i=0;
    while($i < mysql_num_rows($result))
     {
        echo mysql_result($result, $i, 'word') . "<br />";
        $i++;
     }
     echo '<hr>';
 }
?>
<html>
    <head>
        <title>RegEx Generator</title>
    </head>
    <body>
        <form action='badword.php?act=do' method='post'>
            Word: <input type='text' name='word' /><br />
            <input type='submit' value='Generate' />
        </form>
        <a href="badword.php?act=list">List Words</a>
    </body>
</html>
 

37voto

David Fraga Points 81

Shutterstock a un dépôt Github avec une liste de mots incorrects utilisés pour le filtrage.

Vous pouvez le vérifier ici: https://github.com/shutterstock/List-of-Dirty-Naughty-Obscene-and-Otherwise-Bad-Words

7voto

Cheesy Points 301

Si quelqu'un a besoin d'une API, Google fournit actuellement un indicateur de mauvais mot.

 http://www.wdyl.com/profanity?q=naughtyword

{
response: "false"
}
 

4voto

wilhelmtell Points 25504

Je ne crois pas aux listes noires. J'ai regardé la liste noire liée à la question et, pour une chose, le mot "gay" est un mauvais mot. Vous devez évidemment connaître le contexte des choses. À moins que le site Web ne soit destiné à une communauté religieuse conservatrice, auquel cas de nombreux mots n'ont pas besoin d'un contexte pour être considérés comme offensants, je suggérerais d'utiliser un "offensant?" lien comme commun dans les forums. Cela devrait être efficace et comporter beaucoup moins de faux positifs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X