Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sesje i boty
Forum PHP.pl > Forum > PHP
Puchatek
Cześć, mam utworzony sklep internetowy napisany w php.
Elementem tego sklepu jest koszyk, dlatego na każdej stronie rozpoczynana jest sesja.
Problemem jest to, że moją stronę odwiedza multum botów, które rozpoczynają nowe sesje. Tworzony jest wtedy plik na moim serwerze, który zawiera dane sesji.
Mam ustawionego crona, który usuwa te pliki po 2 dniach.
Niestety wczoraj miałem taką sytuację, że serwer został przepełniony. W ciągu jednego dnia, tych plików uzbierało się na łączną sumę ~200GB (nowe pliki tworzone są praktycznie kilka razy na sekundę).
Moje pytanie jest takie:
Czy jest jakiś sposób na to, by session_start było uruchamiane tylko wtedy, jeśli użytkownik nie jest botem?
Jeśli istnieje taki sposób, to czy ta metoda nie wpłynie jakoś negatywnie na pozycjonowanie?
Ewentualnie, jeśli nie da się tego zrobić w phpie, to może mogę te boty zablokować jakoś w htaccess? W htaccess mam zablokowanych około 100 botów, jednak bez jakiegokolwiek skutku.
netir
Może po prostu za dużo danych trzymasz w tych sesjach? Takie rzeczy jak koszyk i dodawanie produktów można zrobić po stronie Klienta.

Natomiast jeżeli nie chcesz naprawić problemu, a tylko przykleić plaster to najlepiej zrób logi i zbierz dane. Zapisuj IP, agenta przeglądarki i spróbuj wyłapać w tych danych pattern, który pomoże ci wychwycić niechciane boty. Mając listę botów to zablokowanie nie powinno być już problemem.

Jeżeli szukasz funkcji, która powie czy to bot czy prawdziwy user to takiej nie znajdziesz, ponieważ bot jeżeli chce może udawać usera.

Możesz też skorzystać z gotowych rozwiązań: https://www.cloudflare.com/products/bot-management/
sazian
Zależy o jakich botach mówisz.
Jeśli to boty wyszukiwarek to mają one zawsze w user agent podane że są botem i w takim przypadku na końcu skryptu możesz poprostu niszczyć sesje.
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-2024 Invision Power Services, Inc.