삶 가운데 남긴 기록 AACII.TISTORY.COM
HTML5 canvas finger print 본문
소개
보통 웹사이트에 접속한 사용자를 식별하려면 쿠키를 사용합니다.
Canvas fingerprinting 은 웹사이트에 접속한 브라우저를 95% uniquely 하게 식별하는 기술입니다.
100% 식별이 아니기 때문에 주로 광고 타겟팅에 이용되고 있습니다.
University of California, San Diego 의 연구원이 2012년 5월에 쓴 논문
“Pixel Perfect: Fingerprinting Canvas in HTML5” 이 최초입니다.
미국 백악관 사이트 포함 5.5% 이상 이 기술을 사용중인 것으로 알려졌습니다.
원리
- html5 canvas로 렌더링 되는 이미지는 GPU나 드라이버의 영향으로 pc 마다 달라서 고유 이미지가 됩니다.
- 이 canvas 이미지를 base64으로 인코딩하여 서버로 전달합니다.
- 이 이미지를 해싱 후 서버에 저장하여 관리합니다.
구현
var canvasElement = document.createElement('canvas');
var ctx = canvasElement.getContext('2d');
var txt ="BrowserLeaks,com <canvas> 1.0";
ctx.textBaseline = "top";
ctx.font = "14px 'Arial'";
ctx.textBaseline = "alphabetic";
ctx.fillStyle = "#f60";
ctx.fillRect(125,1,62,20);
ctx.fillStyle = "#069";
ctx.fillText(txt, 2, 15);
ctx.fillStyle = "rgba(102,204,0,0.7)";
ctx.fillText(txt, 4, 17);
var canvasValue = canvasElement.toDataURL('image/png', 1.0);
console.log(canvasValue);
이를 이용한 api가 git hub에 존재 합니다.
https://github.com/fingerprintjs/fingerprintjs2
728x90
'DEV&OPS > Javascript' 카테고리의 다른 글
javascript 우클릭, 더블클릭선택, 드래그 방지 (0) | 2022.04.19 |
---|---|
웹페이지 뒤로가기 방지 방법 (0) | 2022.04.19 |
CSS 텍스트가 아닌 레이아웃 블록 요소의 가운데 정렬, 이미지 태그의 자동 크기 조절 예제 (0) | 2022.04.19 |
javascript replaceAll 구현 (0) | 2022.04.19 |
javascript check box 다루기 (2) | 2022.04.19 |