Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zabezpieczenie przed spamem lub floodem, nieco inaczej
Forum PHP.pl > Forum > PHP
gac3k
Witam panowie lub panie, ale wątpię żeby takowe tutaj przebywały.

Mam do was pytanie bardziej teoretyczne, ale koniecznie mi do pracy. Mianowicie powiedzmy że buduję sobie portal, w nim mam możliwość pisania komentarzy dla użytkowników niezalogowanych, oczywiście jest ono zabezpieczone przez captche i powiedzmy dodam jeszcze jakieś zabezpieczenie przed CSRF w postaci jakiegoś tokenu.

Tak więc generalnie mogę dzięki temu uniknąć botów które chciałyby oferować powiększenie penisów i inne mrzonki. Jednak powiedzmy że ktoś uparty chciałby sam z siebie dodawać śmieciowe posty. Nie mówię tu już o typowym spamie, bo przed tym też mogę się zabezpieczyć jakimś Akismet'em lub czymś podobnym, ale przed trollowymi postami, tylko po to by zaśmiecać bazę i obciążać serwer.

No i właśnie tutaj moje pytanie jakie rozwiązanie antyfloodowe dla takich niezalogowanych użytkowników, bo generalnie możliwości teoretycznie jest kilka, np. zapisywanie IP do bazy danych, i sprawdzanie timestamp pomiędzy ostatnim dodanym a obecnym postem, jednak jest to IMO nie optymalne, primo ze względu na dynamiczne IP, a z drugiej strony na IP wewnętrzne, czyli jeden adres dla całej sieci.

Druga możliwość to np. użycie tych szatańskich narzędzi smile.gif jak np Evercookie i babranie się z tym, no ale ja nie jestem zwolennikiem jakiejkolwiek inwigilacji, więc to rozwiązanie też odrzuciłem.

Trzecia możliwość to tworzenie jakichś mechanizmów zabezpieczeń w postaci kombinacji ciastek i sesji. No ale to też nie jest extra bo jednak wystarczy zmienić przeglądarkę i po wszystkim.

Czwarta możliwość ku której aktualnie się skłaniam jest stworzenie czegoś w rodzaju odcisku palca przeglądarki, zawierającego dane których dany użytkownik przy danym komputerze nie jest w stanie w danej chwili zmienić, zapisanie tego do bazy i sprawdzanie. Nie wiem jednak co mogłoby tam być, bo z góry odpada nam UserAgent i właśnie IP.

Stąd też moje pytania:

Co sądzicie o takim rozwiązaniu?
Czy waszym zdaniem jest ono skuteczne?
Jakie dane można by kodować w takim fingerprincie?
No i przede wszystkim, czy znacie jakieś lepsze sposoby na rozwiązanie takiego problemu?

Wiem że troszku się rozpisałem, ale mimo wszystko liczę że ktoś mi odpowie. Dodam też że szukałem czegoś podobnego po internecie ale nie znalazłem nic konkretnego.
IceManSpy
Cytat(gac3k @ 31.05.2011, 17:53:07 ) *
Druga możliwość to np. użycie tych szatańskich narzędzi smile.gif jak np Evercookie i babranie się z tym, no ale ja nie jestem zwolennikiem jakiejkolwiek inwigilacji, więc to rozwiązanie też odrzuciłem.

Czwarta możliwość ku której aktualnie się skłaniam jest stworzenie czegoś w rodzaju odcisku palca przeglądarki, zawierającego dane których dany użytkownik przy danym komputerze nie jest w stanie w danej chwili zmienić, zapisanie tego do bazy i sprawdzanie. Nie wiem jednak co mogłoby tam być, bo z góry odpada nam UserAgent i właśnie IP.


Przeczysz sam siebie smile.gif Nie chcesz się babrać w proste cookie, ale UserAgent, IP i inne chcesz zbierać nerdsmiley.png

Zrób zwykłe cookie, które zapiszesz u usera z ważnością na ile tam chcesz - 30 sekund, minuta, dwie...
cycofiasz
Nie ma skutecznego rozwiązania, a stosowanie ograniczeń na IP (jak sam wiesz) jest bez sensu. Pozostaje proste sprawdzanie ciastka, skuteczne na tych mniej obeznanych userów. Myślę że przy zastosowaniu captchy mało któremu trollowi zachce się dokuczać. I tu jest właśnie miejsce dla moderatora wink.gif
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.