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

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.