문제

아주 기술적인 것은 아니지만...우리가 개발 중인 새 사이트에 나쁜 단어 필터를 구현해야 합니다.그래서 내 DB에 공급할 "좋은" 나쁜 단어 목록이 필요합니다.힌트/방향이 있나요?구글링으로 둘러보니 I 이것을 찾았다 하나, 시작일 뿐 그 이상은 아닙니다.

네, 이런 종류의 필터는 쉽게 벗어날 수 있다는 것을 알고 있습니다...하지만 클라이언트는 클라이언트가 될 것입니다 !!!:-)

사이트에서는 영어와 이탈리아어 단어를 모두 필터링해야 하지만 이탈리아어의 경우 동료들에게 커뮤니티에서 구축한 "parolacce" 목록을 도와달라고 요청할 수 있습니다. :-) 이메일을 보내면 됩니다.

도움을 주셔서 감사합니다.

도움이 되었습니까?

해결책

지정된 언어는 보지 못했지만 PHP에 이것을 사용할 수 있습니다. 삽입된 각 작업에 대해 RegEx를 생성하여 의도적인 철자 오류(예:@ss, i3itch )도 잡힙니다.

<?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>

다른 팁

조심하세요 음란한 실수.

"애플은 자신들의 비전을 쫓아내는 어리석은 실수를 저질렀습니다. 즉, NeXT가 무엇을 했는지 보세요!"

흠."클버틱".

Google "clbuttic" - 수천 건의 조회수!

자신의 차를 '클버틱'이라고 부르는 사람이 있습니다.

"Clbuttic Steam Engine" 게시판이 있습니다.

웹스터 사전 - 도움이 되지 않습니다.

흠.이게 뭘까요?

힌트:REGEX 스크립트에 대해 Buttumptions를 만드는 사람들은이 실수를 반복 할 때 당황 스러울 것입니다.

Shutterstock에는 다음과 같은 Github 저장소가 있습니다. 나쁜 단어 목록 필터링에 사용됩니다.

여기서 확인할 수 있습니다: https://github.com/shutterstock/List-of-Dirty-Naughty-Obscene-and-Otherwise-Bad-Words

API가 필요한 사람을 위해 Google은 현재 나쁜 단어 표시기를 제공합니다.

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

{
response: "false"
}

업데이트:Google은 이제 이 서비스를 제거했습니다.

게시물을 알게 되면 삭제하고 게시물에 대해 지나치게 노골적인 사용자는 차단하라고 말하고 싶습니다.욕설을 사용하지 않고도 매우 공격적인 말을 할 수 있습니다.ass(당나귀라고도 함)라는 단어를 차단하면 사람들은 a$$ 또는 /\55 또는 필터를 통과하기 위해 입력해야 하는 모든 항목을 입력하게 됩니다.

Clbuttic 실수에 +1, "잘못된 단어" 필터가 정확한 문자열이 아닌 앞뒤 공백(예: " ass ")을 모두 검색하여 clbuttic과 같은 단어가 없도록 하는 것이 중요하다고 생각합니다. , 클부트, 버터, 부테스 등

위키피디아 ClueBot 잘못된 단어 필터가 있으면 해당 소스를 읽어보세요.

http://en.wikipedia.org/wiki/User:ClueBot/Source#Score_list

지속적으로 욕설을 게시하는 사용자 세션을 갖도록 클라이언트를 설득하고 이를 시스템에 추가하는 쉬운 솔루션을 만들 수 있습니다.이는 많은 작업이지만 아마도 커뮤니티를 더욱 대표하게 될 것입니다.

이 주제를 조사하면서 나는 필요한 것은 임의의 교체를 수행하는 목록 그 이상이라는 것을 결정했습니다.내가 원하는 '청결도' 수준을 확인할 수 있는 웹 서비스를 구축했습니다.또한 거짓양성을 식별하기 위해 노력합니다.어떤 단어는 어떤 상황에서는 좋지 않을 수 있지만 다른 상황에서는 그렇지 않을 수 있습니다.보세요 http://filter언어.com

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top