Jak zabezpieczyć stronę przed niechcianym contentem?

0

Buduję stronę/aplikację gdzie trzeba założyć konto - email + hasło + nazwa wyświetlana i trzeba aktywować email klikając w link. Później można dodawać posty, które są widoczne dla wszystkich, nawet niezalogowanych odwiedzających. Linki dodane w postach są dodawane jako zwykły tekst.

I tak się zastanawiam jak to zabezpieczyć przed spamem, żartownisiami dodającymi głupie posty dla żartów i botami dodającym 100 postów na minutę.
Dodałem limit na użytkownika X postów/5minut, Y/ godzinę itd. i podobny limit bez względu na użytkownika gdyby ktoś pozakładał multikonta i chciał zaśmiecić bazę.

Mam możliwość banowania użytkownika po mailu i po IP.
Ale wciąż jest możliwość, że ktoś pozakłada kilka kont, ma możliwość zmiany IP, zaśmieci bazę i zablokuje dodawanie postów normalnym użytkownikom przekraczając limit ogólny.

Nie za bardzo chcę wrzucać do każdego formularza captchę, bo wiem jakie to potrafi być irytujące.

A może dostawca hostingu (Azure) dba też trochę takie rzeczy?

Aktywacja konta przez nr telefonu chyba na razie odpada, bo nie chcę odstraszać tym wymaganiem.

Edit: można być też banować domenę z której ktoś podaje email

3

Captcha jest spoko
Co do tekstów możesz użyć jakiejś biblioteki która pozwoli ci wykryć wulgarne słowa, ewentualnie zastąpić je używając jakiś znaków typu gwiazdka lub po porostu zablokować użytkownika.
Zanim upublicznisz post przepuścić przez taki filter.
Wydaj mi się że limit bezwzględny nie jest dobrym rozwiązaniem. Pojawi się sytuacja w której zwykły użytkownik nie będzie mógł stworzyć posta bo jest jakiś limit globalny( Trochę przypał )
Też możesz napisać jakiś mechanizm który będzie usuwał wiadomości użytkownika zbanowanego.
Możesz też wykryć że w ciągu jednej godziny z jednego ip korzystało 10 userów i na tej podstawie ich zbanować.
Na fb też możesz zakładać wiele kont więc przed tym ciężko się uchronić.

2

Możesz tylko minimalizować impakt, ale 100% zabezpieczyć się moim zdaniem nie da, zawsze znajdzie się sposób. Główne problemy to TOR oraz tymczasowe maile. Exit node-ów TOR-a wszystkich nie wytniesz (bez wnikania w szczegóły), a domeny na temp-maile pojawiają się jak grzyby po deszczu i chyba nawet gdzieś widziałem jakieś listy dla adminów, mające pozwolić to wycinać, ale domeny dochodzą szybciej niż ktokolwiek na to reaguje. Nawet jeśli, to rodzimi spamerzy nauczyli się już jechać na o2.pl itp. Problem narasta wraz z popularnością witryny. Niska popularność = mały problem i wtedy nie trzeba wiele robić.

Moje podpowiedzi (parę pomysłów wrzucił już krancki - popieram):

  • limit postów na godzinę poza użytkownikiem daj też na IP (działa na zwykłych łosi, wbrew pozorom jest ich całkiem sporo, niektórzy nadal żyją w świecie, że zmiana nicka i maila pozwala się ukryć)
  • przy banowaniu automatycznie ukrywaj treści zbanowanego - spamerzy żerują na widoczności URL-i, nawet jeśli pójdzie BAN, ale treść nie zniknie, to spamer osiągnął sukces, treść musi zniknąć
  • przydać się może mechanizm (sam stosuję), który wykrywa ciąg znaków w zawartości - dzięki temu łapię URL-e lub charakterystyczne słowa, np. nie spodziewam się użycia na swojej stronie wyrazu "pozycjonowanie" :)
  • jeśli system jest autorski, to spoko, ale jeśli bazujesz na czymś, to delikatnie zmień coś w rejestracji, dodaj jakiś element, który nie jest normalnie częścią systemu, żeby automaty, które już dany system znają, nie były na to gotowe
  • nie wiem jaki charakter, ale jeśli strona nie powinna teoretycznie zawierać postów z zewnętrznymi URL-ami, to jeśli ktoś wstawia pierwszy post i od razu daje URL, rozważałbym ręczną moderację i akceptowanie takiego postu, w jednym miejscu mam ustawione, że user musi zdobyć "reputację" - 3 posty, żeby móc dać zewnętrzny URL, jeśli z URL wypali wcześniej, to wpada na kolejkę moderacyjną
  • ostateczne opcje dozbrajania - można też ustawiać jakieś ciacho rozpoznawcze, że user już jest pod innym nickiem, zawsze jakiś ekstra dodatek lub odkładać coś w local storage przeglądarki, ale zależy tu na jaką popularność liczysz - nie ma też sensu budować fortecy, gdy mowa o raczej drobniejszym blogu

Z captchą przy dodawaniu treści bym się nie bawił - irytuje userów. Tylko przy rejestracji widzę sens. Najwyżej invisible, ale raczej ma to mały sens.

Ale wiele zależy od charakteru strony. I nie wolno zapominać, że im większe ograniczenia, tym bardziej można zrazić zwykłych userów, trzeba to zrealizować z głową, w zależności od zawartości strony i spodziewanej aktywności użyszkodników :)

0

Cloudflare Firewall Rules - blokujesz chiny i cały blok wschodni+podejrzany ruch i IP, to wykosi większość śmieci, oraz ataki DDos, reszta po stronie backendu i styka.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0