![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 16.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jestem zupełnie zielony z PHP i liczę na Waszą pomoc. Mam skrypt na stronie <a href="http://www.skps.wroclaw.pl">koła przewodników sudeckich</a> umożliwiający dodawanie komentarzy pod systemem newsów. Mam kilku "upierdliwców" którzy psują całą zabawę jednakże ich ban jest niemożliwy ponieważ korzystają z neostrady. Czy istnieje jakiś sposób na zbanowanie użytkowników neo?? Fragment mojego kodu:
Kod /* DODAWANIE KOMENTARZA */ case add_kom: $_GET['no']=intval($_GET['no']); $banfile = file("$newspath/ban.txt"); $ip = $_SERVER["REMOTE_ADDR"]; $ban = "false"; foreach($banfile as $linia){ $linia = explode("||", $linia); if($linia[0] == $ip){ $ban = "true"; } } if($ban == "true"){ $print_center = news_wiadomosc("Przepraszamy, ale nie masz zezwolenia na dodanie komentarza, ponieważ twoje IP ($ip) zostało zablokowane przez administratora. [<a href=\"".$config["adres"]."\">wróć do newsów</a>]"); } else{ if($_GET["do"] == "save"){ if($_POST['kom_autor']=="" || $_POST['komentarz']==""){ $print_center = news_wiadomosc("Wypełnij wszystkie wymagane pola! [<a href=\"java script:history.back()\">wróć</a>]"); } else{ $filename = "$newspath/komentarze/".$_GET["no"]; if(file_exists($filename)){ $kom_autor = $_POST["kom_autor"]; $kom_email = $_POST["kom_email"]; $komentarz = $_POST["komentarz"]; $kom_autor = strip_tags($kom_autor); $kom_email = strip_tags($kom_email); $komentarz = strip_tags($komentarz); $kom_autor = str_replace("|", "\\|", $kom_autor); $kom_email = str_replace("|", "\\|", $kom_email); $komentarz = str_replace("|", "\\|", $komentarz); $kom_autor = preg_replace("'\n|\r\n|\r'si", "", $kom_autor); $kom_email = preg_replace("'\n|\r\n|\r'si", "", $kom_email); $komentarz = preg_replace("'\n|\r\n|\r'si", " ", $komentarz); $numer = max_l_plik(0, "||", $filename)+1; $file = fopen($filename, "a+"); flock($file, 2); $puts = "$numer||$komentarz||$kom_autor||$kom_email||".time()."||$ip||\n"; fputs($file, $puts); flock($file, 3); fclose($file); $print_center = news_wiadomosc("Twój komentarz został dodany. [<a href=".$config["adres"].">wróć do newsów</a>]"); } else{ $print_center = news_wiadomosc("Nie można dodać komentarza - brak pliku z baz± danych do tego newsa. [<a href=".$config["adres"].">wróć do newsów</a>]"); } } } else{ $print_center.= " <form action=\"". $config["adres"]."function=add_kom&no=".$_GET["no"]."&do=save\" method=post name=formularz> *Autor: <input type=text name=\"kom_autor\"> Email: <input type=text name=\"kom_email\"> *Komentarz: "; if($config["emoty_kom"] == "tak"){ $print_center.= list_emots($newspath,"komentarz")." "; } $print_center.= "<textarea style=\"width:300; height:150\" name=\"komentarz\"></textarea> * - pola wymagane <input type=submit value=\"dodaj\"> <a href=\"".$config["adres"]."\">[rezygnuj]</a> </form> "; } } break; } Na forum znalazłem coś takiego: http://forum.php.pl/lofiversion/index.php/t27026.html ale nie wiem jak wpleść ten kod w zasadniczy przedstawiony wyżej aby się to zamknęło w całość |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Ban na IP generalnie jest prosty do obejścia. Próbuj różnych metod, np. ciastka. Niestety na idiotów nie ma dobrego lekarstwa, pocieszające jest to, że wpisy łatwo się usuwa a dodanie ich zajmuje dzieciom trochę czasu, więc kasujesz aż im się znudzi
![]() Inna sprawa to boty - może to one powodują problemy? Warto zadbać o filtry antyspamowe. Wygląda mi to na kawałek PS NEws, na początek poczytaj o filtrach antyspamowych. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Dodaj np. captcha + ograniczenie czasowe, przykładowo jeden komentarz co 10 minut dla jednego ip.
-------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
captcha + aktywacja wpisów przez moda ;]
i w panelu input shoutbox do zatwierdzania masowego, co nie zatwierdzone to wylatuje. I niech sobie spamuje, szybko mu się znudzi jak zobaczy że brak efektów jego pracy. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 16.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Niestety na idiotów nie ma dobrego lekarstwa, pocieszające jest to, że wpisy łatwo się usuwa a dodanie ich zajmuje dzieciom trochę czasu jest to kilku starych emerytów (dosłownie) którzy potrafią wyskrobać coś obraźliwego i ten sam tekst wklejać jako komentarze pod newsami przez pół nocy... a administratorzy każdego poranka tracą po 30-50 min na ich usuwanie ![]() ![]() Cytat Dodaj np. captcha + ograniczenie czasowe, przykładowo jeden komentarz co 10 minut dla jednego ip. wygląda rozwiązanie na naprawdę sensowne ![]() ![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 300 Pomógł: 32 Dołączył: 31.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Użyj $_SERVER['REMOTE_HOST'] lub gethostbyaddr($ip) i zbanuj po domenie wszystkich z neo. A później ewentualnie dodawaj wyjątki np. dla zalogowanych użytkowników. Na pewno są też jakieś RBL które blokują wszystkie zmienne ip.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
https://admin.recaptcha.net/accounts/signup/?next= <- rejestrujesz się, później określasz adresy stron, na których ma być aktywna usługa recaptcha, generujesz dwa klucze: publiczny i prywatny i czytasz api/helpa, jak z tego skorzystać. Ja akurat wykorzystuję gotowe klasy w Zendzie: Zend_Service_ReCaptcha oraz Zend_Form_Element_Captcha <-- całość zajmuje jakieś 4 linijki kodu i problem z głowy.
Ten post edytował darko 6.01.2010, 13:48:57 -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 16.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat https://admin.recaptcha.net/accounts/signup/?next= <- rejestrujesz się, później określasz adresy stron, na których ma być aktywna usługa recaptcha, generujesz dwa klucze: publiczny i prywatny i czytasz api/helpa, jak z tego skorzystać. Ja akurat wykorzystuję gotowe klasy w Zendzie: Zend_Service_ReCaptcha oraz Zend_Form_Element_Captcha <-- całość zajmuje jakieś 4 linijki kodu i problem z głowy. z tego co wiem recaptcha generuje kody obrazkowe i jest skuteczna w odniesieniu do bootów. A tu tak jak wcześniej wspominałem jest problem kilku upierdliwych mocherów, którzy tak naprawdę mają niewielkie pojęcie o tym jak to wszystko działa, i których przez to że są podłączeni do neo nie da się zbanować. Cytat Użyj $_SERVER['REMOTE_HOST'] lub gethostbyaddr($ip) i zbanuj po domenie wszystkich z neo. A później ewentualnie dodawaj wyjątki np. dla zalogowanych użytkowników. Na pewno są też jakieś RBL które blokują wszystkie zmienne ip. To też jest doskonałe rozwiązanie gdyż ze stałych bywalców nikt poza nimi z neo nie korzysta ![]() |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
To jak są tacy starsi to może nie dowidzą, ja sam mam problemy z odczytaniem napisów które generuje recaptcha, a młody jestem i wzrok mam dobry
![]() -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
wygląda rozwiązanie na naprawdę sensowne ![]() ![]() Miałem na myśli, bardziej takie prościutkie captcha wyraźne i w ogóle, niech boty czytają w końcu to ludzie spamują. Ograniczenie czasowe - zapisujesz sobie np. do sesji, lecz bym polecał bazę danych i po ip rozpoznawać. Komu będzie się chciało non stop resetować neo? -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 16.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Użyj $_SERVER['REMOTE_HOST'] lub gethostbyaddr($ip) i zbanuj po domenie wszystkich z neo. A później ewentualnie dodawaj wyjątki np. dla zalogowanych użytkowników. Na pewno są też jakieś RBL które blokują wszystkie zmienne ip. to jak Panowie?? Powie mi ktoś jakiego kodu mam użyć i gdzie wkleić aby zbanować neo ![]() |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
1. Musisz się dowiedzieć, z jakiej puli pochodzą adresy IP, jeżeli pula to np. 11.22.X.X gdzie x i x to dowolne liczby to niestety - zbanujesz zbyt dużą liczbę osób.
2. Potem pozostaje wyrażenie regularne, lub rozbić adres explodem po "." i sprawdzać każdą część. Powinno też pomóc: - ograniczenie dodawania wpisu do np. jednego co godzinę - ograniczenie długości wpisu - ograniczenie możliwych do wpisania znaków czy tagów html - cenzor - ograniczenie liczby nowych linijek (popularny spam znakami nowej linii) - ciastka By zmienić IP trzeba się przelogować, usunięcie/modyfikacja ciacha też nie każdemu jest znana, więc zawsze paru rencistów mniej. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.07.2025 - 00:06 |