Przycisk - kto pierwszy ten lepszy

0

Potrzebuje stworzyć pewną funkcjonalność na zasadzie konkursu, w skrócie chodzi o "kto pierwszy ten lepszy", pokazuję przycisk o danej godzinie danej liczbie użytkowników np 10 osób i potrzebuję informacji, który kliknął go pierwszy. Zastanawiam się jak to stworzyć, żeby uniknąć botów.

Czy jest w ogóle możliwość uniknięcia botów w tej sytuacji?

  • Captcha po kliknięciu przy czym sprawdzam czas od kliknięcia w przycisk (chyba i tak boty mogą być),
  • 4 przyciski w losowych miejscach stronki (nie wiem czy to nie zniechęci użytkownika).

Jakieś sugestie jak się za to zabrać?

2

Matryca przycisków, z czego tylko jeden zawiera obraz czegoś, co wygląda jak przycisk, a reszta jakieś bzdetne obrazki.
Obraz przycisku losowany z jakiejś szerszej puli, najlepiej unikalny.
Id i inne parametry powiązane z właściwym przyciskiem za każdym razem inne.

3

Pierwsze pytanie - powiedz, czy ma to działać w necie, czy jakoś lokalnie?
Niezależnie od powyższego, musisz rozbić sobie projekt na dwie części: serwer, który koordynuje działania użytkowników oraz mechanizm/skrypt w przeglądarce, który wchodzi w interakcje z userami. Od którego planujesz zacząć? Ja bym najpierw przysiadł do frontu.

0

Tak w necie.

Od frontu, tylko chcę jak najmniej zniechęcić użytkownika do korzystania z tego. W sumie zastanawiam się na jakiej zasadzie taki bot może wykryć dany przycisk, czy jeśli on będzie miał unikatowe miejsce w przeglądarce, różne id i wygląd to będzie on w stanie to wyłapać?

1

No to chyba najlepiej iść w kierunku tego, co pisze smoczyca: dajesz ileś-tam elementów, które od strony technicznej się niczym nie różnią. Do tego umieszczasz na nich różne obrazki, a potem dajesz polecenie w stylu "Wciśnij przycisk z zielonym smokiem". Walidację zrób przez AJAX po stronie serwera, więc nawet jakby jakiś bot zaczął analizować kod skryptu, bo i tak nie pozna poprawnej odpowiedzi, ponieważ za każdym razem będzie inne ID przypisane do obrazka ze smokiem.

0

Średnio mnie satysfakcjonuje takie rozwiązanie bo takich akcji docelowo w ciągu dnia będzie kilka/kilkanaście, raczej nie zaciągnę skądś obrazka z takim tekstem, chyba że są takie serwisy, a dodając to ręcznie pula szybko zacznie się powtarzać.

1

Ew. jeszcze inaczej: wrzucasz na stronę dużą grafikę kilkaset × kilkaset px, na której użytkownik ma nacisnąć miejsce z określonym obrazkiem. Pobierasz współrzędne kliknięcia i wysyłasz na serwer. Serwer sprawdza, czy współrzędne kliku mieszczą się w zadanych widełkach i jeśli tak, to zalicza kliknięcie. Wada - musisz wygenerować ten obrazek.

1
SwateQ napisał(a):

Średnio mnie satysfakcjonuje takie rozwiązanie bo takich akcji docelowo w ciągu dnia będzie kilka/kilkanaście, raczej nie zaciągnę skądś obrazka z takim tekstem, chyba że są takie serwisy, a dodając to ręcznie pula szybko zacznie się powtarzać.

Możesz je jeszcze każdorazowo generować po stronie serwera.

0
Freja Draco napisał(a):

Możesz je jeszcze każdorazowo generować po stronie serwera.

"je generować" czyli tekst opisujący właściwy obrazek?

1

No ale zasada jest prosta - albo korzystasz z jakichś gotowych rozwiązań typu https://www.google.com/recaptcha/intro/v3.html , albo robisz to sobie sam, ale w takim wypadku musisz poświęcić czas na przygotowanie tego: zarówno mechanizmu, jak i danych, które są mu niezbędne do działania. Mam wrażenie, że Ty jednocześnie chcesz zjeść ciastko i mieć ciastko, ale tak się raczej nie da :P

0

No dobrze, a co sądzicie jakby generować obrazki zawierające słowo i powyżej napis "wciśnij obrazek zawierający słowo: smok" ?

2

Pomysł Ok, aczkolwiek (podobno) boty potrafią za pomocą OCR bez problemu odczytać tekst. Dlatego zresztą często na róznych captchach stosuje się rozmywanie/maskowanie tekstu - coś w stylu screenshot-20190531120209.png
Natomiast widzę inną opcję - wygenerować obrazek z napisem "smok", a potem zamiast kazać "Kliknij na przycisku z napisem SMOK", dać polecenie w stylu "Wskaż baśniowego potwora, zazwyczaj zielonego i ziejącego ogniem" :D

2
SwateQ napisał(a):

No dobrze, a co sądzicie jakby generować obrazki zawierające słowo i powyżej napis "wciśnij obrazek zawierający słowo: smok" ?

Jest to jakieś rozwiązanie, ale wszystko zależy od tego, na ile zdeterminowanych masz ew. twórców botów. Najlepsze są kapcze graficzne, gdzie trzeba rozpoznać obiekt określonej klasy.

Może to zbytnia abstrakcja, ale pomysł mam taki: każdorazowo generujesz l-systemem o różnych parametrach kilkanaście pseudoroślin i każesz użytkownikowi wybrać np. paprotkę.

1

Nalotu botów nie przewiduję, ale nie chciałem funkcjonalności do której napisanie bota będzie wymagało skończenia podstawówki i umiejętności googlowania :P

Myślę, że pozostanę przy generowaniu obrazka z tekstem ew. zaciągnę baze haseł do krzyżowek i na tym będę bazował, wtedy będzie tak jak pisał cerato :D

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