Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
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. }
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?)
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? (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/wink.gif)
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? (IMG:style_emoticons/default/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
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
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! (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 15.09.2025 - 16:35