Content Security Policy (CSP)
Примеры кода старые, надо чекать
Добавить CSP, стили и скрипты подписывать хешом sha256
https://github.com/slackhq/csp-html-webpack-plugin или аналогичный
Запретить выполнение всего не нашего по возможности.
(function(){
var _z = console;
Object.defineProperty( window, "console", {
get : function(){
if( _z._commandLineAPI ){
throw "Sorry, Can't execute scripts!";
}
return _z;
},
set : function(val){
_z = val;
}
});
})();
window.console.log = function(){
console.error('Sorry , developers tools are blocked here....');
window.console.log = function() {
return false;
}
}
Реализовать детект открытия консоли и не давать создавать аукцион
var detectHeadless = function () {
var agent = window.navigator.userAgent;
var appVersion = window.navigator.appVersion;
var webdriver = window.navigator.webdriver ? true : false;
return /headless/i.test(agent) || /headless/i.test(appVersion) || webdriver;
};
var Loader = function () {
this.pp = {
'cd': undefined,
'hdl': detectHeadless()
};
var threshold = 160;
var loop;
var self = this;
var dc = document.createElement('div');
try {
Object.defineProperty(dc, "id", {
get: function () {
if(self.pp.cd !== true){
clearInterval(loop);
self.pp.cd = true;
self[blocks].send('cd_open');
dc = null;
}
}
});
} catch (err) {
}
var cheker = function () {
try {
var widthThreshold = window.outerWidth - window.innerWidth > threshold;
var heightThreshold = window.outerHeight - window.innerHeight > threshold;
if (
!(heightThreshold && widthThreshold) &&
((window.Firebug && window.Firebug.chrome && window.Firebug.chrome.isInitialized) || widthThreshold || heightThreshold)
) {
clearInterval(loop);
self.pp.cd = true;
} else {
self.pp.cd = false;
self[blocks].send('cd_close');
if(!log_addet){
log_addet = true;
console.log(dc);
}
//eval('(window.console||{clear:function(){}}).clear();')
}
} catch (err) {
}
};
var interval_cheker = function () {
if(self.pp.cd === false){
loop = setInterval(cheker, 1000);
}
};
cheker();
setTimeout(interval_cheker, 500);
};
a = new Loader()