Jakiś czas temu na jednym ze swoich serwisów stanąłem przed wyzwaniem jak identyfikować użytkownika aby mógł głosować tylko raz dziennie.
Obecne mechanizmy polegające na zwykłych ciasteczkach + ip były dość … prymitywne i nie spełniały swojej roli.
Naturalnym wydało mi się użycie evercookie jednak oficjalna paczka posiadał kilka błędów które przeszkadzały podczas pracy z biblioteką.
Dlatego uruchomiłem repozytorium na Githubie ze swoimi zmianami
https://github.com/DarkGL3/evercookie
Co zostało zmienione:
- Uporządkowanie trochę struktury katalogów
- Dodanie wersji minified
- Silverlight jest defaultowo wyłączony
- Dodanie użycia obietów deferred z jQuery ( przykład poniżej )
- Naprawa bugu w użyciu baseUrl
Plany
- Dodanie czasu życia ciasteczek
- Nowe sposoby zapisu
- Szyfrowanie ciasteczek tak aby nie możliwy był odczyt z innej domeny ( można to osiągnąć stosując szyfrowanie po stronie serwera )
Przykład użycia
var ec = new evercookie();
ec.get( "cookie" ).done( function( value ){
console.log( value , 'resolve - znaleziono ciasteczko' );
}).fail( function(){
console.log( 'reject - brak ciasteczka' );
});
Nie wiem czy chciałbym tak być traktowany, szczególnie jak masz mi dysk zaśmiecać lub używać dziur. Co to jest za strona? Jest na niej napisane wyraźnie, że używasz bugów w javie, które exploitujesz, żeby dostać się na dysk użytkownika czy robisz to po cichu?
A co jak głosuję wgetem/curlem/linksem/noscriptem?
A kto tu coś mówi o bugach w Javie? Dostępie do dysku? To jest wszystko oparte o legalne zapisywanie pewnych informacji w pamięci komputera użytkownika. Po prostu wykorzystuje więcej, niż zwykłe ciasteczka.
Mówi: „Java exploit CVE-2013-0422 – Attempts to escape the applet sandbox and write cookie data directly to the user’s hard drive.”.
Twoje ciacha testuja http://www.tvp.info/17518330/amerykanie-testuja-superciasteczka-nie-usuniesz-ich-z-przegladarki
;p
Zbyt pięknie by było ;p