Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: System banowania oraz usunięcie sesji na stronie
Forum PHP.pl > Forum > PHP
maxerxxl
Cześć.

Dzisiaj spotkałem się z nietypowym problemem. Otóż na moją stronę wszedł użytkownik który zaczął spamować i tworzył multi konta, które pojawiały się w bazie danych. Dodałem blokadę że można stworzyć 2 konta na jeden adres IP nadal to nie pomaga bo tworzy multi konta i zaśmieca bazę. Da się coś z tym zrobić?

Druga sprawa to taka jak mam wykonać banowanie użytkownika? Bo IP to będzie zły pomysł, są zmienne IP itp. Jest jakaś opcja zbanowania użytkownika na serial dysku czy coś takiego ? W grach jest coś takiego.

Pozdrawiam
goartur
IP pomoze ale malo, najlepiej dodac captche i problem z glowy.
bostaf
Nie zapobiegniesz takiemu zachowaniu, ale możesz je utrudnić - spowolnić proces rejestracji przez co złośliwy użytkownik szybciej się znudzi. I w ogóle się tym nie przejmuj - na świecie niestety są takie typy smile.gif Przyzwyczaj się, że jak robisz coś publicznie to będziesz poddawany takim "testom".
1. Tak jak napisał goartur - zaimplementuj captcha albo coś podobnego.
2. Wprowadź weryfikację adresu email mailowo - to lepsze niż captcha; bardziej spowalnia.
3. Wprowadź ograniczenie ilości kont zakładanych w danym okresie czasu.

A z drugiej strony, zaprojektuj system tak, żeby takie działania nie mogły wywołać większej szkody. Zaśmiecaniem bazy się nie martw bo bazy mają dosyć dużą pojemność. Ale wprowadź okresowe sprawdzanie bazy pod kątem nieaktywnych czy niepotwierdzonych kont, pustych postów, itp. Wyrzucaj co niepotrzebne i tyle.
Jeśli problemem są nieodpowiednie komentarze zamieszczane przez takiego użytkownika, to pomyśl o wprowadzeniu moderowania postów albo o wprowadzenia instytucji moderatora. Wszystko zależy od tego jak bardzo Twoja strona jest uczęszczana / popularna. Czasami jedna osoba zaglądająca raz dziennie na forum / stronę jest w stanie ogarnąć temat i pousuwać złośliwe wpisy i spam.
Możesz też wprowadzić stopniowanie uprawnień. Na przykład ograniczenie ilości postów dla świeżo założonego konta i podnoszenie limitu w okresach czasu. Albo moderowanie postów dla świeżo założonych kont...
maxerxxl
Dzięki za pomoc.

Zostało jeszcze jedno pytanie. W jaki sposób mogę wszystkim na mojej stronie usunąć zapisane sesję, bo usunąłem użytkownika z bazy danych i on jest zalogowany na stronie.

Bo po zalogowaniu są przydzielane sesje takie jak:
user_login
user_wallet
user_first_name
user_last_name

W jaki sposób mogę te zmienne wyzerować wszystkim użytkownikom na stronie?
bostaf
Możesz usunąć te dane sesji.
Żeby wyświetlić ścieżkę do katalogu, w którym dane sesji php są przechowywane - w terminalu wpisz:
Kod
php -r 'echo session_save_path() . PHP_EOL;'

Wyświetli ci się coś w rodzaju
Kod
/var/lib/php/sessions

Dane sesji są przechowywane w tym katalogu w plikach o domyślnej nazwie "sess_ID_SESJI". Możesz podejrzeć zawartość każdego z tych plików albo znaleźć ten jeden, którego właśnie szukasz:
Kod
grep -R nazwa_usera /var/lib/php/sessions

i usunąć ten plik, czego skutkiem będzie, że przeglądarka tego użytkownika nie zidentyfikuje się już z Twoim serwisem:
Kod
rm -r /var/lib/php/sessions/NAZWA_PLIKU_Z_SESJĄ_USERA

...albo usunąć wszystkie pliki sesji, co spowoduje "wylogowanie" wszystkich użytkowników:
Kod
rm -r /var/lib/php/sessions/*

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.