![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 392 Pomógł: 7 Dołączył: 11.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam skrypt w którym w tablicy trzymam zbiór przekleństw i brzydkich słów. Za pomocą pętli i if-ów sprawdzam czy w formularzu nie znajdują się jakieś słowa z tablicy. Skrypt działa dobrze jednak łatwo go ominąć.
Przykładowo moje brzydkie słowo to: "przykład". W takiej postaci skrypt zadziała, jednak jak dam "p_r_z_y_k_ł_a_d", "p*r*z*y*k*ł*a*d", "p-r-z-y-k-ł-a-d" lub choćby "p_rzykład", p*rzykład, p-rzykład już nie. Jak przed czymś takim się uchronić. Możliwe, że trzeba wykorzystać wyrażenia regularne, ale nie wiem jak je napisać. ![]() Nie chodzi tu o to żeby skrypt wszystko i wszystkich blokował tak jak jest z niektórymi cenzorami, jednak chciałbym żeby był bardziej rozbudowany. Tu podałem przykład ominięcia skryptu, który mi jest znany jeśli ktoś zna inne sposoby proszę o ich pokazanie i o rozwiązania. ![]() Ten post edytował Szunaj85 12.06.2010, 17:14:28 -------------------- Jeśli Ci pomogłem wciśnij
![]() ![]() |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 580 Pomógł: 85 Dołączył: 25.03.2010 Skąd: Skrzyszów :) Ostrzeżenie: (0%) ![]() ![]() |
str_replace i zamieniasz wszystkie "dziwne" znaczki na "nic" i dopiero wtedy sprawdzasz
Ten post edytował zend 12.06.2010, 17:23:16 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 79 Dołączył: 25.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nie ma na 100% skutecznego sposobu, no chyba, że będziesz moderował posty.
Zawsze można pomieszać przkyład znaki , wpisać z błędem, literówką itp. np. przyklad można też zastąpić kilka znaków przy..ad a i tak każdy będzie wiedział o co chodzi. Co nie wymyślisz to zawsze znajdzie się obejście ![]() -------------------- Jeśli ten post pomógł to kliknij przycisk
![]() Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ... |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 729 Pomógł: 346 Dołączył: 4.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
No niestety 100% filtra nie zrobisz, ba jak ktoś będzie chciał to ominie każdy (np. zmieniając kodowanie znaków czy zamiast przekleństwo napisze PRZE KLEŃSTW0 czy jeszcze inną metodę), jeżeli zrobisz zbyt mocne filtrowanie to też zaczną pojawiać się kwiatki, np. jeżeli zamienisz wszystkie dziwne znaki na nic z pominięciem spacji to wy raz dalej przejdzie, ale jeżeli uwzględnisz spację przy usuwaniu znaków to będziesz cenzurował środki wyrazów np. porachuje zostanie częściowo ocenzurowane. Cenzura takich wyrazów przez automat jest bardzo ciężka, a wręcz niemożliwa.
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 275 Pomógł: 32 Dołączył: 21.03.2006 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
Wpisuj różne kombinacje, odmiany, kawałki, np. kurw, urwa. itd. No niestety, głupoty człowieka nie pokonasz.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 392 Pomógł: 7 Dołączył: 11.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
zend Twoje rozwiązanie byłby całkiem całkiem gdyby nie fakt, że przekręt z przekleństwem może wyglądać choćby tak: "p-r-z-y-k-ł-a-d", "p.r.z.y.k.ł.a.d", p/r/z/y/k/ł/a/d", itp, a takich znaków jak myślnik, kropka, ukośnik, itp nie mogę usuwać.
Cytat jeżeli zamienisz wszystkie dziwne znaki na nic z pominięciem spacji to wy raz dalej przejdzie, ale jeżeli uwzględnisz spację przy usuwaniu znaków to będziesz cenzurował środki wyrazów np. porachuje zostanie częściowo ocenzurowane. konole Bazując na Twoim przykładzie "urwa" w przykładowym zdaniu "Urwałaś się z choinki". Dlatego ja jestem świadomy, że z takimi końcówkami trzeba uważać. lobopol dobrze mówi. Cytat No niestety 100% filtra nie zrobisz Tak jak napisałem chciałbym żeby był bardziej rozbudowany, a nie 100% skuteczny. W związku z tym jakiś konkretne propozycje? Widzę, że temat ucichł. Wydaje mi się jednak, że warto go jeszcze podrążyć. ![]() Może ktoś zna jeszcze jakieś inne rozwiązania. ![]() Ten post edytował Szunaj85 12.06.2010, 19:22:16 -------------------- Jeśli Ci pomogłem wciśnij
![]() ![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 2 Dołączył: 6.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
na przekręt z .,/-+|_ polecam regex ;]
zrobić $brudna= explode(" ", $string); $czysta =preg_replace('/[^a-zA-Zńąćśźżó곣ӯŹĆĄŚĘŃ ]/', '',$string); zostaje jedynie spacja i polskie znaki dziwnie to wygląda ale działa na polskie znaki nie miałem innego pomysłu... a potem $tabliczka= explode(" ",$czysta); sprawdzać w 1 pętli $tabliczka[$i] z bazą wulgarnych. i tylko wtedy i wyłącznie wtedy gdy $czysta[$i] jest wulgarna podmienić w tablicy $brudna[ $i]="cenzura"; $j2=++$j; i w nr. 2 pętli możesz $tabliczka[$j].$tabliczka[$j2] sprawdzać do bazy wulgarnych. i tylko wtedy i wyłącznie wtedy gdy $tabliczka$j].$tabliczka[$j2] jest wulgarna podmienić w tablicy $brudna[$j]="cenzura" $brudna[$j2]="" ; i w $brudna tablice łaczymy $wyniczek= implode(" ",$brudna); i $wyniczek jest dobry. raczej usunie jedynie wulgaryzmy bo raczej do głowy przychodzi mi tylko usunięcie zdania że "pierd Oli był naprawdę głośny". ale już "Urwałaś się z choinki" nie naruszy ![]() jeśli ktoś zrobi k**wa to już musiałbyś albo cenzurować słowa zawierające *+ w sobie w całości lub sprawdzać podobieństwo innymi słowami. a to by raczej ostro muliło ... Ten post edytował Hoku 10.07.2010, 00:31:43 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 392 Pomógł: 7 Dołączył: 11.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Hoku Wybacz, ale jakoś mało to dla mnie zrozumiałe.
![]() I właśnie jak napisać skrypt, który by blokował takie brzydkie wyrazy jakie podałem wyżej w przykładach, np. p-r-z-y-k-ł-a-d, (czyli mimo, że są jakieś znaki między literami) posiadając jedynie tablicę z normalnymi brzydkimi wyrazami? Ten post edytował Szunaj85 15.07.2010, 13:08:28 -------------------- Jeśli Ci pomogłem wciśnij
![]() ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 03:11 |