Skocz do zawartości
plachcik

Ogromne zużycie transferu - boty (mp4 w tle)

Polecane posty

Witam,

Na swoich stronach internetowych posiadam film w tle mp4 (hosting na linuxpl)

Mam problem z tym plikiem ponieważ widzę, że boty zużywają mi transfer przy wejściach na stronę.

Z jednego numeru IP polskiego miałem 149 tys wywołań do tego pliku. (240 gb transferu zostało zużyte w jeden dzień)

W jaki sposób mogę zablokować w htaccess dostęp do tego pliku, tak żeby bez problemu był odtwarzany w tle na stronie.

Czy mogę w inny sposób poradzić sobie z numerami IP, które wywołują ten plik po kilkaset razy?

 

Dziękuję z góry za pomoc.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

cos takiego?

 

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(mp4)$ - [F]

  • Upvote 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

cos takiego?

 

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]

RewriteRule \.(mp4)$ - [F]

 

Co powoduje powyższa reguła?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tu masz link do tutka: http://www.translationdirectory.com/articles/article1318.php

Zabezpieczy przed podlinkowaniem pliku z rozszerzeniem mp4 z zewnątrz. Modyfikując ostatnia linijkę na:

RewriteRule \. (mp4) $ http://www.mydomain.com/stop.png [R, L]

 

Każdy kto będzie chciał podlinkować czy umieścić twoje wideo na swojej stronie otrzyma obrazek stop.png. Oczywiście nazwa domeny to przykład wzięty z tutka.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tu masz link do tutka: http://www.translationdirectory.com/articles/article1318.php

 

Zabezpieczy przed podlinkowaniem pliku z rozszerzeniem mp4 z zewnątrz. Modyfikując ostatnia linijkę na:

 

RewriteRule \. (mp4) $ http://www.mydomain.com/stop.png [R, L]

 

Każdy kto będzie chciał podlinkować czy umieścić twoje wideo na swojej stronie otrzyma obrazek stop.png. Oczywiście nazwa domeny to przykład wzięty z tutka.

Czy zablokuje to zużywanie transferu przez boty, które wchodzą na stronę i odpalają film.

 

post-13787-0-10751400-1485095981_thumb.png

Edytowano przez plachcik (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Powinieneś rozróżnić wejścia na stronę od podlinkowania. Tu ewidentnie widać że ktoś po prostu albo się bawił albo zrobił to nieświadomie. Możesz wycinać pojedyncze IP lub rozbudować plik powyżej umieszczając konkretne nagłówki przeglądarek.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Upewnij się, że Twój serwer wysyła właściwe dyspozycje co do trzymania w cache rzadko zmieniających się plików, tak aby nie były wywoływane przy każdym wyświetleniu strony. Np. w .htaccess można dodać coś na kształt:

<ifmodule mod_expires.c>
<Filesmatch "\.(flv|mov|mp3|mp4)$">
    ExpiresActive on
    ExpiresDefault "access plus 1 year"
</Filesmatch>
</ifmodule>

Oczywiście to od klienta (przeglądarki, bota) ostatecznie zależy, czy za tymi wytycznymi będzie podążać, "dobre" boty zwykle trzymają się reguł, "złe" bardzo często mają to wszystko gdzieś i i tak robią co chcą.

 

Jeśli masz kłopot ze szczególnymi botami, możesz po prostu zablokować tylko je po adresach IP. Np. ja w ubiegłym roku miałem problem z jakimiś bliżej niezidentyfikowanymi botami hostowanymi w jednej z serwerowni chmury Amazona, zablokowałem więc wszystkie IP tejże serwerowni.

 

Użycie jakiegoś CDN (np. wspomnianego CloudFlare, choć to nie jedyna opcja) oczywiście też znacząco pomoże (choć osobiście nie jestem fanem takich rozwiązań, szczególnie w wersji darmowej, gdzie nie nad każdym aspektem działania CDN ma się kontrolę).

 

Edytowano przez Piotr GRD (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Upewnij się, że Twój serwer wysyła właściwe dyspozycje co do trzymania w cache rzadko zmieniających się plików, tak aby nie były wywoływane przy każdym wyświetleniu strony. Np. w .htaccess można dodać coś na kształt:

<ifmodule mod_expires.c>
<Filesmatch "\.(flv|mov|mp3|mp4)$">
    ExpiresActive on
    ExpiresDefault "access plus 1 year"
</Filesmatch>
</ifmodule>

Oczywiście to od klienta (przeglądarki, bota) ostatecznie zależy, czy za tymi wytycznymi będzie podążać, "dobre" boty zwykle trzymają się reguł, "złe" bardzo często mają to wszystko gdzieś i i tak robią co chcą.

 

Jeśli masz kłopot ze szczególnymi botami, możesz po prostu zablokować tylko je po adresach IP. Np. ja w ubiegłym roku miałem problem z jakimiś bliżej niezidentyfikowanymi botami hostowanymi w jednej z serwerowni chmury Amazona, zablokowałem więc wszystkie IP tejże serwerowni.

 

Użycie jakiegoś CDN (np. wspomnianego CloudFlare, choć to nie jedyna opcja) oczywiście też znacząco pomoże (choć osobiście nie jestem fanem takich rozwiązań, szczególnie w wersji darmowej, gdzie nie nad każdym aspektem działania CDN ma się kontrolę).

 

 

Dziękuję wszystkim za pomoc.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To dotyczy urządzeń mobilnych więc jest to może dość drastyczne rozwiązanie ale stosując to:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|opera mobile|palmos|webos" [NC]
RewriteRule ^$ http://stop.example.com/ [L,R=302]

 

Przeniesiesz wszystkich odwiedzających na subdomenę stop....


A to może będzie również przydatne: http://incredibill.me/

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No ale co to ci rozwiąże? Wytniesz cały ruch mobilny? Ustaw CF i zablokuj ruch tylko przez CF. Szybko wyłapują taką zabawę.

"Robienie transferu" nie jest trudne - kilka VPS i np. coś takiego: http://pastebin.com/t1mXtQSE i lecą setki GB na dzień.

 

CDN + wycinanie ruchu tylko poszczególnych adresów. Wywalenie całego mobilnego to nie rozwiązanie. Nagłówki raczej nic nie zmienią - to prosto podmienić.

Edytowano przez devon (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie wiem jak to wygląda ale jeżeli rozumiem to tło jakieś strony jest dynamiczne i jest tam film? Łatwiej go wrzucić na yt jako prywatny i embed. Nie wiem jak to wygląda ale to najłatwiejsze rozwiazanie :)

 

cache też zbyt wiele nie zmienia - wystarczy że bot je czyści i tyle. Tutaj nie ma łatwego rozwiązania. Zacznij od prostego wycinania po ip.

 order allow,deny
 deny from 8.8.8.8
 allow from all
ew. dla cloudflare podepnij i pozwól tylko dla: https://www.cloudflare.com/ips/ Edytowano przez devon (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wrzuciłem do pliku .htaccess

 

 

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http://(www\.)?strona.pl/.*$ [NC]
RewriteRule \.(mp4)$ - [F]
<ifmodule mod_expires.c>
<Filesmatch "\.(flv|mov|mp3|mp4|jpg|gif|png|jpeg})$”>
ExpiresActive on
ExpiresDefault "access plus 1 year"
</Filesmatch>
</ifmodule>
<filesMatch ".(css|jpg|jpeg|png|gif|js|ico|mp4)$”>
Header set Cache-Control "max-age=31536000, public"
</filesMatch>
Mam nadzieję, że pomoże.

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×