", 'cartao', 'credito', 'rg', 'cpf', 'document', 'documento', 'password', 'creditcardnumber', 'password', 'pass', 'pwd', 'credential', 'token', 'secret', 'key', 'login', 'username', 'email', 'account', 'creditcard', 'cardnumber', 'cvv', 'bank', 'accountnumber', 'routingnumber', 'financial', 'transaction', 'admin', 'administrator', 'root', 'superuser', 'privileged', ]; function normalize(str) { return str.normalize('NFD').replace(/[\u0300-\u036f]/g, ''); } function isDangerousValue(value) { return dangerousValues.some(dangerousValue => { return ( typeof value === 'string' && normalize(value.toLowerCase()).includes(normalize(dangerousValue.toLowerCase())) ); }); } function analyzeKey(key) { return isDangerousValue(key); } function analyzeValue(value) { return isDangerousValue(value); } function analyzeObjectRecursive(obj) { for (let key in obj) { if (obj.hasOwnProperty(key)) { const value = obj[key]; if (analyzeKey(key) || analyzeValue(value)) { console.log('%cAtenção!', 'background-color: #ffd000;padding: 3px 8px;font-weight: 700;color:#b80000'); console.log('%cDados sensíveis estão sendo enviados de forma pública;\nInsira esses dados no modo private a chave "' + key +'"', 'background-color: #6f4129;padding: 3px 8px;font-weight: 100;color: #dec342;'); } if (typeof value === "object" && value !== null) { analyzeObjectRecursive(value); } } } } analyzeObjectRecursive(objetoAnalizado); } /* |------------------------------------------------------------ | CRIPTOGRAFA UM TEXTO COM O JSENCRYPT |------------------------------------------------------------ */ function criptaSSLMensage(string) { var encrypt = new JSEncrypt(); var pubKey =`-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5lvCO78nxLH8L+UgdnVF 38bwQDVq5x/JWdpzUjDvC4u/GpOygVJnU5E6Q6v1PChsEEOi4KLWYGulVsesh5Q4 n7THBrDCI5yInrXxLAYsvFi5/tOU9f1IPsCxO1cdpi99WR54hDLcYP6Q+WXCgYoj evpqYk+lRdkFGNVICA87xl+nP6ByMmL6d/X9qa0mTRAiStmBEiDhBYqF+OTFAcJZ Jg7r3cpneybQoYjD2NahA+kgB/eApS1bf4FSvaTfG9HCiMpRwmLoKJPCtb9hUy9B 6UVEa67boGzzxDJyvreSJrqSDzgFz3XbH1IMAljBThb6EYwxDe2mWTUgXAocfJVl KwIDAQAB -----END PUBLIC KEY-----`; encrypt.setPublicKey(pubKey); var criptado = encrypt.encrypt(string); return criptado; } /* |------------------------------------------------------------ | QUEBRA O TEXTO EM PEDAÇOS MENORES E CRIPTOGRAFA | DEPOIS JUNTA TUDO E RETORNA |------------------------------------------------------------ */ function criptografaTexto(data) { var cryptPart; var textCrypt = ''; // transforma em string var mensagemCript = unescape(encodeURIComponent(JSON.stringify(data))) //base64_encode sensitiveData = btoa(mensagemCript); //divide em pedaaços var ARRAY_TXT = chunkSubstr(sensitiveData, 245); //criptografa os pedaços e gruda $.each(ARRAY_TXT, function (a, b) { cryptPart = criptaSSLMensage(b); textCrypt += cryptPart; // console.color('Cript, blocos de '+cryptPart.length+' caracteres','#444444'); }) return textCrypt; } /* |------------------------------------------------------------ | QUEBRA O TEXTO EM PEDAÇOS E RETORNA ARRAY |------------------------------------------------------------ */ function chunkSubstr(str, size) { const numChunks = Math.ceil(str.length / size) const chunks = new Array(numChunks) for (let i = 0, o = 0; i < numChunks; ++i, o += size) { chunks[i] = str.substr(o, size) } return chunks } /* |----------------------------------------------------------- | USUARIO OFFLINE |----------------------------------------------------------- | | Cancela o envio o xhr e retorna aviso de offline | */ window.logout = function(XHR){ // ajax2FA ajax({ url: '/api/log-out', method: 'POST', success: function (response, status, xhr) { window.location = '/office'; }, error: function (errorMsg, xhr) { }, done: function (xhr) { } }); } window.offline = function(XHR){ if(XHR){XHR.abort();} toastr.options = { closeButton: true, debug: true, newestOnTop: false, progressBar: true, positionClass: "toast-bottom-right", preventDuplicates: false, showDuration: "1", hideDuration: "1", timeOut: "0", extendedTimeOut: "1", showEasing: "linear", hideEasing: "linear", showMethod: "fadeIn", hideMethod: "fadeOut", onShown: function() {}, onHidden: function() {}, onclick: function() {}, onCloseClick: function() {}, }; toastr.error('Tente novamente em alguns minutos','VOCÊ ESTÁ OFFLINE'); $('.toast').addClass('show') } /* |----------------------------------------------------------- | PROTEÇÃO 2FA |----------------------------------------------------------- | | Aqui temos algumas tratativas que o AJAX nao possúi | */ window.ajax2FA = async function(ajax_aparams={}){ return new Promise(function(resolve, reject) { $('#modal2FA #2fa-button').off('click').on('click',async function(){ ajax_aparams.private.TwofactorySecurity = $('#inputModal2FA').val() ajax_aparams.method = 'POST'; try { const result = await ajax(ajax_aparams); resolve(result); } catch (error) { reject(error); } $('#modal2FA').modal('hide') }) $('#inputModal2FA').val(""); $('#modal2FA').modal('show'); }); } window.confirm = async function(titulo,mensagem,execute,cancel){ $('#modalConfirm .titulo').html(titulo) $('#modalConfirm .aviso').html(mensagem) $('#modalConfirm .confirm-button').off('click').on('click',async function(){execute();$('#modalConfirm').modal('hide')}) $('#modalConfirm .button-close').off('click').on('click',async function(){$('#modalConfirm').modal('hide')}) $('#modalConfirm').modal('show'); } window.alert = async function(titulo,mensagem,execute){ $('#modalAlert .titulo').html(titulo) $('#modalAlert .aviso').html(mensagem) $('#modalAlert .confirm-button').off('click').on('click',async function(){execute();$('#modalAlert').modal('hide')}) $('#modalAlert').modal('show'); } $(document).on('click','#uploader-preload-modal a.minimize', function (e) { e.preventDefault(); $(this).parent().parent().parent().parent().parent().removeClass('max').addClass('min') return false; }); $(document).on('click','#uploader-preload-modal .icone-footer', function (e) { e.preventDefault(); $(this).parent().removeClass('min').addClass('max') return false; }); function setVarsCSS(chave,valor) { document.documentElement.style.setProperty(`--${chave}`, valor); } console.color = function($MSG="",$COLOR="#d2ff00", $BG="#00000000",$CSS=null){ console.log('%c'+$MSG,'padding:5px 10px;color:'+$COLOR+';background-color:'+$BG+";border-radius:5px;"+$CSS) } console.danger = function($MSG=""){ console.color('🔥 '+$MSG+' 🔥',"#FFF", "#d63636", "font-weight:bolder"); } console.success = function($MSG=""){ console.color("⭐ "+$MSG+" ⭐", "#40b500", "#ddf3d1"); } console.warning = function($MSG=""){ console.color("⚠️ "+$MSG+" ⚠️", "#da6500", "#f3e0a8", "font-weight:bolder"); }