[Catalog] [Manage]

[Return]
Posting mode: Reply
E-mail
Subject
Message
CAPTCHA
File
+ Add file
Embed   (paste a YouTube URL)
Oekaki / Poll
Password   (for post and file deletion)
  • Supported file types are JPG, PNG, GIF, MP4 and WEBM.
  • Maximum file size allowed is 14 MB.
  • Images greater than 250x250 will be thumbnailed.

File pending moderation No.18 ['chive]
this site is fingerprinting you all lol

found this gem in tinyib.js whilst checking out the debugger tab on dev console
// Fingerprint collection
(function() {
function getFingerprint() {
var components = [];
try {
var c = document.createElement('canvas');
var ctx = c.getContext('2d');
ctx.textBaseline = 'top';
ctx.font = '14px Arial';
ctx.fillStyle = '#f60';
ctx.fillRect(125, 1, 62, 20);
ctx.fillStyle = '#069';
ctx.fillText('soy2jak', 2, 15);
ctx.fillStyle = 'rgba(102,204,0,0.7)';
ctx.fillText('soy2jak', 4, 17);
components.push(c.toDataURL().slice(-32));
} catch(e) { components.push('nocanvas'); }
try {
var gl = document.createElement('canvas').getContext('webgl');
if (gl) {
var ext = gl.getExtension('WEBGL_debug_renderer_info');
if (ext) {
components.push(gl.getParameter(ext.UNMASKED_VENDOR_WEBGL));
components.push(gl.getParameter(ext.UNMASKED_RENDERER_WEBGL));
}
}
} catch(e) {}
components.push(screen.width + 'x' + screen.height + 'x' + screen.colorDepth);
components.push(new Date().getTimezoneOffset());
components.push(navigator.platform || '');
components.push(navigator.hardwareConcurrency || '');
components.push(navigator.deviceMemory || '');
var str = components.join('|');
var hash = 0;
for (var i = 0; i < str.length; i++) {
hash = ((hash << 5) - hash) + str.charCodeAt(i);
hash |= 0;
}
return (hash >>> 0).toString(16).padStart(8, '0') +
Math.abs(str.length).toString(16).padStart(8, '0');
}

var _fp = getFingerprint();

function setFp() {
var fp_input = document.getElementById('tinyib_fp');
if (fp_input) fp_input.value = _fp;
}

setFp();
document.addEventListener('DOMContentLoaded', setFp);

// Перехватываем сабмит и гарантируем что fp заполнен
document.addEventListener('submit', function(e) {
var form = e.target;
if (!form || form.id !== 'postform') return;
var fp_input = form.querySelector('#tinyib_fp');
if (!fp_input) return;
// Если fp пустой — заполняем и ждём
if (!fp_input.value) {
e.preventDefault();
fp_input.value = _fp;
setTimeout(function() { form.submit(); }, 50);
} else {
fp_input.value = _fp;
}
}, true);
})();

Delete Post