Ostrzeżenia o ciasteczkach i innych tego typu głupotach

Napisało do mnie ostatnio google bo chciało abym na blogu pytał czytelnika o zgodę na to aby go śledzić.

Mi to do niczego nie potrzebne, ja nikogo śledzić nie zamierzam, no ale skoro oni potrzebują i grzecznie poprosili to zapytam. Ostatecznie mamy od nich całkiem niezły hosting za darmo.


Przy okazji zwróciłem uwagę na inne strony które zadają takie pytania. Zdecydowana większość robi to niewłaściwie. Najwyraźniej ktoś zrobił to źle a potem inni po nim kopiowali, a przynajmniej tak to wygląda.


Dlatego postanowiłem opisać na blogu jak powinno działać takie ostrzeżenie, podaje też gotowe rozwiązanie które można skopiować.

Jeśli nie wiecie jak/albo nie chce się wam pisać tego samemu proszę skopiujcie kod ode mnie a nie powtarzajcie po tych co robią to źle.



Aby skorzystać ze skryptu trzeba umieścić gdzieś na stronie pusty <div> lub inny element o id="warn" to wewnątrz niego wyświetlane będzie ostrzeżenie/pytanie - ale tylko jeśli będzie ono potrzebne, jeśli nie będzie potrzebne <div> pozostanie pusty.
Skrypt wklejamy gdziekolwiek wewnątrz znaczników <script>
Treść komunikatów i adresy pod które prowadzą linki oczywiście można zmienić.

function getCookie(nazwa)
{
    if (document.cookie!="") {
        var cookies=document.cookie.split("; "); 
        for (i=0; i<cookies.length; i++) {
            var nc=cookies[i].split("=")[0];
            var vc=cookies[i].split("=")[1];
            if (nc===nazwa) {
                return unescape(vc);
            }
        }
    }
return 0;
}

function setCookie(nazwa, wartosc, dni)
{
    var data = new Date();
    data.setTime(data.getTime()+(dni*24*60*60*1000));          
    var expires = "; expires="+data.toGMTString();
    document.cookie = nazwa+"=" + wartosc + expires + "; path=/";
}

if (navigator.cookieEnabled && window.navigator.doNotTrack!="yes" && window.navigator.doNotTrack!="1")
if (getCookie("zgoda")!=1)
{
var w=document.getElementById('warn');
w.innerHTML="<h3>Z konfiguracji twojej przeglądarki wynika, że prawdopodobnie chcesz być śledzony(a)<br><a onClick='setCookie(\"zgoda\", 1, 7);document.location.href=document.location.href;' href=''>Potwierdzam chcę, nie ostrzegaj ponownie</a><br><a href='http://miniskrypt.blogspot.com/p/blog-page.html'>Nie zgadzam się na śledzenie</a></h3>";
}


Zwróćcie uwagę na to że:
  1. Nie wyświetlam ostrzeżenia tym którzy mają wyłączone ciasteczka w przeglądarce - oni nie będą śledzeni. Większość autorów takich ostrzeżeń zapomina o prostym sprawdzeniu navigator.cookieEnabled
  2. Nie wyświetlam ostrzeżeń tym którzy nie zgodzili się na bycie śledzonym (i nie muszę ich w żaden sposób zapamiętywać), wystarczy w skrypcie sprawdzić czy ktoś sobie ustawił Do Not Track. Ich śledzić nie wolno (ani ciasteczkami ani niczym innym) więc nie ma o czym ich ostrzegać.
Takie właśnie zachowanie nakazuje polskie Prawo Telekomunikacyjne, konkretnie Art 173 punkt 1 b)


Zadając pytanie nie pytajcie ogólnie o ciasteczka - bo o użycie ciasteczek pytać nie trzeba, zapytać trzeba tylko jeśli chce się przy ich pomocy kogoś śledzić (a to tylko jakiś niewielki ułamek wszystkich zastosowań ciasteczek). Poza tym pamiętajcie, że są też inne mechanizmy śledzenia użytkowania nie oparte na ciasteczkach (np local storage, flasz), pytając o zgodę tylko na ciasteczka nie dostaniecie zgody na wykorzystanie tych innych mechanizmów.
Proste pytanie typu „Czy zgadzasz się aby Cię śledzić?” bez wdawania się w techniczne szczegóły jest właściwsze (szczegóły może sobie poczytać ktoś kto jest zainteresowany i kliknie w linka a tam już trzeba wymienić wszytko dokładnie).
Oczywiście na tak zadane pytanie większość odpowie nie (bo kto by chciał być śledzony). No ale mi to nie robi różnicy. I wam autorom blogów i niewielkich stron (nie zajmujących się ściśle sprzedażą czegoś) też nie powinno to robić różnicy.

Jeśli jakimś cudem użytkownik zgodzi się na śledzenie, ustawiam mu ciasteczko ważne tydzień (proste zgoda=1) i przez ten czas nie wyświetlam ponownie pytania. Jeśli uważacie, że 7 dni to za mało albo za dużo to zamiast 7 można podać inną liczbę.

34 komentarze:

  1. Witam mam pytanie jak pobierać z tvnplayer? Ponieważ działa pobieranie w niskiej jakości, ale nie w HD, a kiedyś normalnie działało :
    http://player.pl/seriale-online/szkola-odcinki,2395/odcinek-148,S00E148,53543.html
    Pozdrawiam

    OdpowiedzUsuń
    Odpowiedzi
    1. Serwer udostępnia ten odcinek tylko z jedną (najniższą) jakością, nic na to nie poradzę.

      Usuń
  2. Dzień dobry,

    Mam wielką prośbę o stworzenie takiego małego skryptu do przeglądarki, by po wejściu na adres kanału rss można było zasubskrybować go w usłudze Flowreader.

    Adres do subskrypcji: http://flowreader.com/subscribe?url=www.example.com

    Pozdrawiam!

    OdpowiedzUsuń
    Odpowiedzi

    1. javascript:(function(){document.location.href='http://flowreader.com/subscribe?url='+document.location.href;})();

      Usuń
  3. Mam prośbę. Można prosić o skrypt do uruchamiania filmów z polsatnews.pl

    Sprawdzałem niektóre skrypty, ale nie działały. Pozdrawiam i z góry dziękuję.

    OdpowiedzUsuń
    Odpowiedzi
    1. Zasadniczo mógł bym napisać prosty skrypt ale nie wiem jest to potrzebne bo te filmiki można łatwo pobrać bez skryptu.

      W firefoksie zaznacz filmik (możesz razem z kawałkiem tekstu nad i pod filmem) kliknij prawym i wybierz z menu "pokaż źródło zaznaczenia"
      Dostaniesz bezpośredni adres do filmu.

      Jeśli miał bym pisać skrypt to co twoim zdaniem powinien robić taki skrypt jeśli znajdzie na stronie więcej niż jeden film?

      Usuń
    2. Większość małych filmików jest w HTML5 i przy wtyczce httpewerywhere działa to bardzo dobrze.

      Gorzej jest w zakładce "programy", gdzie cała publicystyka jest w silverlight.

      Np.

      http://www.polsatnews.pl/wideo-program/panstwo-w-panstwie-maciej-dobrowolski_6332698/

      I tutaj jest tego więcej:

      http://www.polsatnews.pl/nasze-programy/

      Właśnie o ten silverlight chodzi. Bo tak jak pisałeś małe filmiki można pobrać bez żadnych skryptów.

      Pozdrawiam.

      Usuń
  4. Witam!
    Z player.pl, dwa ostatnie wydania faktów, skrypty przestały pobierać. To koniec, czy tylko chwilowe problemy?
    W temacie 3w1 nie chciał mi się post wyświetlić, dlatego tutaj proszę.

    OdpowiedzUsuń
    Odpowiedzi
    1. Post się wyświetla (dlatego niedługo usunę duplikat), a skrypty pobierają wszystkie fakty, nawet w HD.

      Może to były jakieś przejściowe problemy które zostały w ciągu ostatnich kilku godzin poprawione a może masz coś nie tak z internetem.

      Usuń
    2. Z internetem wszystko mam ok. Niestety, żaden pobieracz mi nie działa. Pobierałem tylko fakty, więc jakoś to przeżyję. Pozdrawiam.

      Usuń
    3. Z tym internetem to ja poważnie pisałem, może nie masz wpisu w polskim revdns przez co tvnplayer myśli, że łączysz się z zagranicy i blokuje dostęp do faktów.

      Usuń
    4. Ale jak włączam wtyczkę Silver, to bez problemu mi program odtwarza. Pobieracz zawsze mi działał, jedyną zmianą ostatnio była aktualizacja FF do ver. 42.

      Usuń
    5. Cały wątek można usunąć, bo z niezrozumiałych powodów pobieracz zaczął działać.
      Niezrozumiałych, bo sprawdzałem też na innym komputerze, u innego dostawcy internetu - też nie działał i nagle zonk!
      Dzięki, że robisz takie fajne rzeczy!

      Usuń
    6. Da rade pobrać to wideo?
      http://dziendobry.tvn.pl/wideo,2064,n/glodujacy-ojciec-walczy-o-syna,14072.html

      Usuń
  5. @Marek - wysłałam maila na marekd@jabberpl.org ale chyba nie dotarł

    SMTP error from remote server for RCPT TO command, host: *** reason: 550 5.1.1 <***>: Recipient address rejected: User unknown
    in virtual alias table

    OdpowiedzUsuń
    Odpowiedzi
    1. Bo to nie jest mój adres email tylko jebber ID.

      Usuń
    2. Dzięki za odp. Już znalazłam właściwego gmaila z linka ;).

      Usuń
  6. Witam próbuję pobrać odcinki serialu Szkoła z playera, ale niestety nie działa jakość HD, a jeszcze jakieś 2-3 tygodnie temu działała. Co mogę z tym zrobić? Wcześniej normalnie działało HD i średnia a teraz żadnego nie da się pobrać w HD. Pozdrawiam

    OdpowiedzUsuń
    Odpowiedzi
    1. Zmienił się stosowany przez nich format plików przewidzimy na telewizory samsung.

      Dlatego obecna wersja skryptu pobiera pliki przewidziane na androida a tam nie ma jakości HD.

      Mógł bym zamieścić na blogu skrypt do pobierania tych plików samsungowych (zresztą nawet gdzieś się pojawił na forum) tylko nie bardzo jest czym je odtwarzać.

      Może uda się coś z tym zrobić bo ffmpeg prawie sobie z nimi radzi, zaczyna odtwarzać jednak wiesza się po kilkunastu najdalej kilkudziesięciu sekundach. Gdyby udało mi się go poprawić można by pobrane pliki odtwarzać dowolnym odtwarzaczem korzystającym z biblioteki ffmpeg albo konwertować na jakiś inny format za pomocą samego ffmpega.

      Usuń
  7. czesc, Marek, czy jest sposob na download tego filmu?:

    http://pirackiekino.blogspot.com/2016/04/zjawa-2015-online-po-polsku.html?m=1

    - i w ogole na download filmow z tego portalu?

    OdpowiedzUsuń
    Odpowiedzi
    1. Odtwarzacz pobiera pliki normalnie po http tyle że bez pośrednictwa przeglądarki.
      Najprościej postawić sobie własne transparentne http proxy i zapisywać wszystkie pobierane pliki.

      Usuń
  8. troche rozumiem. Czyli prostego download jednego pliku - np filmu 2h w szybkie 15 minut wykonac nie mozna.

    OdpowiedzUsuń
  9. rozumiem tez, ze skryptozakladki "3 w 1" niekoniecznie pozwola na download i to wlasnie jest ten przypadek:

    https://vod.pl/filmy/cleo-od-piatej-do-siodmej/ye0enkg

    OdpowiedzUsuń
  10. z bólem serca tak zwanym trzeba przyznać, że skryptozakładki 3w1 na vod.pl w zasadzie już nie działają...

    OdpowiedzUsuń
  11. No dobra... ale moze ktoś wie, jak poradzić sobie z download darmowych video na vod.pl?

    OdpowiedzUsuń
  12. Widzę wielką wadę w tym skrypcie, najpierw musi być div i potem gdzieś niżej skrypt.
    Tak samo masz u siebie na blogu, div w ok. 500 linii, skrypt w ok. 1100 linii.

    Z porad internetowych wyszło coś takiego i czy to jest optymalne: codepen.io/anon/pen/WpMoav?

    OdpowiedzUsuń
    Odpowiedzi
    1. Nie ma różnicy, można to wstawić gdzie się komu podoba, zadziała tak samo.

      Tu akurat było mi wygodniej wstawić to w jednym ciągu z innymi skryptami na stronie.

      Usuń
    2. Mam na myśli to że bez dodatkowej funkcji "window load", kod się wykonuje i nie znajduje Diva - jak jest w head lub nad divem umiejscowiony (coś z ograniczeniem dostępu do drzewa DOM).
      Jak ten dodatkowy fragment z "mikro funkcją" w wklejce jest ok to super.

      Usuń
  13. Skrypt nie wyłącza komunikatu jak mamy DNT aktywne w IE 9-11 i być może MS Edge 12-14.
    Na IE 11 pomaga dodanie window.doNotTrack!="1" (bez cząstki „navigator”).

    Na szczęście wykrywanie dezaktywowanych cookies przesuwając wskaźnik prywatności na szczyt powoduje że komunikat się nie pokazuje.

    OdpowiedzUsuń
    Odpowiedzi
    1. ...tak MS Edge 14 też wymaga dopisania dodatkowej cząstki by sprawdzać aktywność DNT, bez niej widać mimo aktywacji DNT to ostrzeżenie.

      Usuń
  14. Robicie kawał świetnej roboty. Dzięki =]

    OdpowiedzUsuń
  15. Artykuł 173 mówi o tym, że użytkownik musi wyrazić zgodę na korzystanie z danych zawartych w jego urządzeniu. Plik cookie jest taką informacją. Wprawdzie generuje je witryna, która wysyła taki plik, ale gdy znajdzie się on na urządzeniu użytkownika, zaczyna podpadać pod ustawę. Dlatego wszyscy pytają o cookies – to nie tak, że wszyscy się mylą.
    Czyli pytanie o śledzenie nie ma związku z ustawą – powinno paść pytanie o wykorzystanie informacji z urządzenia. W tym przypadku o możliwość pobrania cookies.

    OdpowiedzUsuń
    Odpowiedzi
    1. Danych pozwalających na jego identyfikację a nie po prostu danych (np zapisanie w pliku ustawień się pod to nie łapie).

      I nie ma znaczenia czy do śledzenia zostanie użyte ciasteczko, local storage, flash czy cokolwiek innego (ustawa w żaden sposób tego nie rozróżnia).

      Usuń