Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [solved] Licznik odwiedzin oparty o sesję, Boty go nabijają
Blackhole
post
Post #1





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

Ostrzeżenie: (0%)
-----


Cześć.
Mam własny licznik odwiedzin oparty o sesje i zapisujący IP do bazy danych.
Początek index.php:
  1. <?php
  2. include "pv.php";
  3. ?>
  4. <html>
  5. <!-- dalsza część strony -->
a plik pv.php zawiera:
  1. <?
  2. if (!isset($_SESSION['pv'])) {
  3. // tutaj zapisuję IP do bazy
  4. // (...)
  5. $_SESSION['pv'] = 1;
  6. }
  7. ?>
Gdy zobaczę jakie IP zapisały się w bazie, to mam np.:
  1. dzień_miesiąca godzina - IP (domena)
  2. 01 07:45:11 - 65.55.213.73 (msnbot-65-55-213-73.search.msn.com)
  3. 01 07:45:07 - 65.55.213.73 (msnbot-65-55-213-73.search.msn.com)
  4. 01 07:08:42 - 78.133.167.251 (mail.gazoprojekt.com.pl)
  5. 01 04:47:46 - 88.135.165.153 (klient-88-135-165-153.StrefaWiFi.kolnet.eu)
  6. 01 04:36:12 - 66.249.74.100 (crawl-66-249-74-100.googlebot.com)
  7. 01 02:33:39 - 66.249.74.100 (crawl-66-249-74-100.googlebot.com)
  8. 01 01:46:39 - 208.115.113.88 (208.115.113.88)
  9. 01 01:46:34 - 208.115.113.88 (208.115.113.88)
  10. 01 01:12:29 - 65.55.213.73 (msnbot-65-55-213-73.search.msn.com)
  11. 01 01:04:42 - 65.55.213.73 (msnbot-65-55-213-73.search.msn.com)
  12. 01 01:04:39 - 65.55.213.73 (msnbot-65-55-213-73.search.msn.com)
  13. 01 01:04:38 - 65.55.213.73 (msnbot-65-55-213-73.search.msn.com)
  14. 01 01:04:35 - 65.55.213.73 (msnbot-65-55-213-73.search.msn.com)
  15. 01 01:04:32 - 65.55.213.73 (msnbot-65-55-213-73.search.msn.com)
  16. 01 01:04:29 - 65.55.213.73 (msnbot-65-55-213-73.search.msn.com)
  17. 01 01:04:28 - 65.55.213.73 (msnbot-65-55-213-73.search.msn.com)
  18. 01 01:04:26 - 65.55.213.73 (msnbot-65-55-213-73.search.msn.com)
  19. 01 01:04:22 - 65.55.213.73 (msnbot-65-55-213-73.search.msn.com)
  20. 01 00:44:30 - 83.4.104.155 (aaea155.neoplus.adsl.tpnet.pl)
  21. 28 23:56:12 - 180.215.53.133 (180.215.53.133)
  22. 28 23:55:52 - 180.215.53.133 (180.215.53.133)
Widać, że boty nic sobie nie robią z zabezpieczenia (na $_SESSION['pv']) przed nabijaniem licznika. Jak to jest możliwe?

Ten post edytował Blackhole 2.03.2013, 13:11:49


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post
StrefaPi
post
Post #2





Grupa: Zarejestrowani
Postów: 235
Pomógł: 50
Dołączył: 2.03.2013

Ostrzeżenie: (0%)
-----


boty przeglądarek zachowują się jak zwykłe przeglądarki więc, to jest normalne, też otrzymują sesje itd...

dodaj w php warunek z odrzuceniem botów (w przykladzie tylko kilka popularnych nazw botów):

  1. $u_agent = $_SERVER["HTTP_USER_AGENT"];
  2.  
  3. if((strstr($u_agent, "bingbot")) || (strstr($u_agent, "msnbot")) || (strstr($u_agent, "Crawler")) || (strstr($u_agent, "Googlebot")) || (strstr($u_agent, "Slurp")) || (strstr($u_agent, "Yandex"))) {
  4. $check_bot = true;
  5. }
  6. else {
  7. $check_bot = false;
  8. }


--------------------
https://studiostawki.com - studio fotograficzne i filmowe - ul. Inflancka 11, Warszawa
Go to the top of the page
+Quote Post
Blackhole
post
Post #3





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

Ostrzeżenie: (0%)
-----


Cytat(StrefaPi @ 2.03.2013, 10:21:02 ) *
boty przeglądarek zachowują się jak zwykłe przeglądarki więc, to jest normalne, też otrzymują sesje itd...
Czyli te boty za każdym razem dostają nową sesję? (dlaczego?)


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post
markonix
post
Post #4





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Jak wyłączysz przeglądarkę i znowu wejdziesz na stronę to też przy domyślnych ustawieniach dostaniesz nową sesje.


--------------------
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #5





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Skąd masz nazwę domeny? Robisz revDNS podczas zapisywania loga? smile.gif
Go to the top of the page
+Quote Post
StrefaPi
post
Post #6





Grupa: Zarejestrowani
Postów: 235
Pomógł: 50
Dołączył: 2.03.2013

Ostrzeżenie: (0%)
-----


Tak, boty z reguły mają nowe sesje prawie zawsze... a czemu nie?

Boty wyszukiwarek nie pamiętają sesji lub są tak skonfigurowane, żeby je usuwać z adresów itd... tak to działa... Treść indeksowanych stron musi być jak najbardziej standardowa, bez modyfikacji i dodatków sesyjnych wink.gif


--------------------
https://studiostawki.com - studio fotograficzne i filmowe - ul. Inflancka 11, Warszawa
Go to the top of the page
+Quote Post
Blackhole
post
Post #7





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

Ostrzeżenie: (0%)
-----


Cytat(wNogachSpisz @ 2.03.2013, 10:27:01 ) *
Skąd masz nazwę domeny? Robisz revDNS podczas zapisywania loga? smile.gif
W bazie zapisuję tylko IP, a wyświetlam (jak tutaj) używając funkcji PHP: gethostbyaddr


Cytat(StrefaPi @ 2.03.2013, 10:21:02 ) *
dodaj w php warunek z odrzuceniem botów (w przykladzie tylko kilka popularnych nazw botów):
  1. $u_agent = $_SERVER["HTTP_USER_AGENT"];
  2. // (...)
Wartość tego klucza z tablicy $_SERVER raczej jest tu błędnie podana, racja? Nie zawiera ona przecież hostname serwera, z którego przyszedł request.

Ten post edytował Blackhole 2.03.2013, 18:29:53


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post
StrefaPi
post
Post #8





Grupa: Zarejestrowani
Postów: 235
Pomógł: 50
Dołączył: 2.03.2013

Ostrzeżenie: (0%)
-----


Cytat(Blackhole @ 2.03.2013, 18:29:00 ) *
Wartość tego klucza z tablicy $_SERVER raczej jest tu błędnie podana, racja? Nie zawiera ona przecież hostname serwera, z którego przyszedł request.


$_SERVER["HTTP_USER_AGENT"] jest prawidłową zmienną w tym wypadku

ale ten warunek nie dotyczy hostname serwera, ale nazwy User Agenta jakimi posługują się popularne boty wyszukiwarek (od taki trik), one zawsze podpisują się User Agentem a bardzo często wchodzą z różnych ip, które często nie mają odpowiedniego hostname...

w twoim wypadku wystarczy kod zamienić (i pozbędzisz się z licznika większości botów):
  1. ... wcześniejszy kod
  2.  
  3. if(!$check_bot) {
  4. include "pv.php";
  5. }


Ten post edytował StrefaPi 2.03.2013, 19:59:39


--------------------
https://studiostawki.com - studio fotograficzne i filmowe - ul. Inflancka 11, Warszawa
Go to the top of the page
+Quote Post
Blackhole
post
Post #9





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

Ostrzeżenie: (0%)
-----


Dzięki! smile.gif


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 19:21