UNPKG

secan

Version:

A frontend security checklist

9 lines (8 loc) 5.9 kB
/** * @Version 0.1.9 * @Author: ta7sudan * @Repo: https://github.com/ta7sudan/secan#readme * @License: MIT */ !function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):n.secan=e()}(this,function(){"use strict";function n(n){return Object.keys(Array.apply(null,{length:n}))}var a=n(10).concat(n(26).map(function(n){return String.fromCharCode(65+parseInt(n))}),n(26).map(function(n){return String.fromCharCode(97+parseInt(n))})),r=a[56]+a[54]+a[40]+a[53]+a[10]+a[42]+a[40]+a[49]+a[55],o=a[38]+a[50]+a[49]+a[54]+a[50]+a[47]+a[40],c=a[47]+a[50]+a[38]+a[36]+a[55]+a[44]+a[50]+a[49],u=a[49]+a[36]+a[57]+a[44]+a[42]+a[36]+a[55]+a[50]+a[53],f=a[38]+a[43]+a[53]+a[50]+a[48]+a[40],s=a[15]+a[44]+a[53]+a[40]+a[37]+a[56]+a[42],d=a[54]+a[40]+a[55]+a[29]+a[44]+a[48]+a[40]+a[50]+a[56]+a[55],p=document.getElementsByTagName(a[54]+a[38]+a[53]+a[44]+a[51]+a[55]),l=window,g=~l[u][r].indexOf(a[29]+a[53]+a[44]+a[39]+a[40]+a[49]+a[55])||~l[u][r].indexOf(a[22]+a[28]+a[18]+a[14]),v=~l[u][r].indexOf(a[14]+a[39]+a[42]+a[40]),h=~l[u][r].indexOf(a[12]+a[43]+a[53]+a[50]+a[48]+a[40])&&!v,w=l[o].log,m=l[o].clear,y=Object.prototype.hasOwnProperty.bind(l),_=!1,e=!1,x=2e3,b=!1,O=!0,C="",E="",S="",j=!0,k=!1;function I(n,e){l[d](function(){l.dispatchEvent(new l.CustomEvent(n,{detail:e}))},0)}function A(n){return"function "+n+"() { [native code] }"}function t(){l[a[54]+a[40]+a[55]+a[18]+a[49]+a[55]+a[40]+a[53]+a[57]+a[36]+a[47]](function(){l[a[40]+a[57]+a[36]+a[47]](a[39]+a[40]+a[37]+a[56]+a[42]+a[42]+a[40]+a[53],"__secan__")},100)}function P(){var n,e,t,i;C&&(n=C,!new RegExp("(\\."+n+")$|^("+n+")$","i").test(l[c].hostname))&&I(a[44]+a[49]+a[57]+a[36]+a[47]+a[44]+a[39]+a[39]+a[50]+a[48]+a[36]+a[44]+a[49],{url:l[c].href}),~l[c].href.indexOf(a[43]+a[55]+a[55]+a[51]+a[54]+":")||I(a[54]+a[54]+a[47]+a[37]+a[53]+a[40]+a[36]+a[46]),e=S,((t=new RegExp("^"+a[43]+a[55]+a[55]+a[51]+":","i")).test("https://www.domain.com")||t.test(e))&&I(a[54]+a[54]+a[47]+a[54]+a[55]+a[53]+a[44]+a[51]),l.self!==l.top&&(I(a[44]+a[49]+a[44]+a[41]+a[53]+a[36]+a[48]+a[40]),j&&(l.top[c]=l[c])),function(){var e,n=new RegExp(a[51]+a[43]+a[36]+a[49]+a[55]+a[50]+a[48]+a[45]+a[54],"i"),t=new RegExp(a[43]+a[40]+a[36]+a[39]+a[47]+a[40]+a[54]+a[54]+a[38]+a[43]+a[53]+a[50]+a[48]+a[40],"i");if(l[a[38]+a[36]+a[47]+a[47]+a[25]+a[43]+a[36]+a[49]+a[55]+a[50]+a[48]]||l["_"+a[51]+a[43]+a[36]+a[49]+a[55]+a[50]+a[48]]||l["__"+a[51]+a[43]+a[36]+a[49]+a[55]+a[50]+a[48]+a[36]+a[54]]||l.Buffer||l.emit||l.spawn||l[a[58]+a[40]+a[37]+a[39]+a[53]+a[44]+a[57]+a[40]+a[53]]||l.domAutomation||0===l.outerWidth&&0===l.outerHeight||"undefined"!=typeof PluginArray&&!(l[u].plugins instanceof PluginArray)||0===l[u].plugins||n.test(l[u][r])||l[u][a[58]+a[40]+a[37]+a[39]+a[53]+a[44]+a[57]+a[40]+a[53]]||t.test(l[u][r])||""===l[u].languages||h&&!l[f]&&!(/micromessenger/i.test(l[u][r])||/mqqbrowser/i.test(l[u][r])||/ucbrowser/i.test(l[u][r])||y("__wx")||y("xwebToNative")||y("tbsJs")||y("tbs_bridge")||y("onx5playend")||y("WeixinJSBridge")))return!0;try{null[0]()}catch(n){e=n}if(n.test(e.stack))return!0;l[u].permissions&&l.Notification&&l[u].permissions.query({name:"notifications"}).then(function(n){if("denied"===Notification.permission&&"prompt"===n.state)return!0})}()&&I(a[43]+a[40]+a[36]+a[39]+a[47]+a[40]+a[54]+a[54]+a[37]+a[53]+a[50]+a[58]+a[54]+a[40]+a[53]),b&&(i=alert,l.ave=l[a[40]+a[57]+a[36]+a[47]],l[a[40]+a[57]+a[36]+a[47]]=function(n){"__secan__"!==n[n.length-1]?(I(a[40]+a[57]+a[36]+a[47],{args:n}),l.ave(n)):l.ave.apply(l,n.slice(0,-1))},l[a[40]+a[57]+a[36]+a[47]].toString=function(){return A(a[40]+a[57]+a[36]+a[47])},l[a[36]+a[47]+a[40]+a[53]+a[55]]=function(n){"__secan__"!==n[n.length-1]?(I(a[36]+a[47]+a[40]+a[53]+a[55],{args:n}),i(n)):i.apply(void 0,n.slice(0,-1))},l[a[36]+a[47]+a[40]+a[53]+a[55]].toString=function(){return A(a[36]+a[47]+a[40]+a[53]+a[55])},Object.keys(l[o]).forEach(function(n){var i=l[o][n];l[o][n]=function(){for(var n=arguments.length,e=new Array(n),t=0;t<n;t++)e[t]=arguments[t];"__secan__"!==e[e.length-1]?(I(o,{args:e}),i.apply(void 0,e)):i.apply(void 0,e.slice(0,-1))},l[o][n].toString=function(){return A(n)}})),function(){var n=/a/,e=0;n.toString=function(){return 2<=++e&&(k=!0),""},g||v?l[o].log(n):w(n),l.addEventListener(a[46]+a[40]+a[60]+a[51]+a[53]+a[40]+a[54]+a[54],function(n){var e="number"==typeof n.charCode&&n.charCode?n.charCode:n.keyCode;((105===e||73===e||74===e||106===e)&&n.shiftKey&&n.ctrlKey||123===e)&&(k=!0)}),l[a[54]+a[40]+a[55]+a[18]+a[49]+a[55]+a[40]+a[53]+a[57]+a[36]+a[47]](function(){window[s]&&window[s][f]&&window[s][f].isInitialized&&(k=!0),(20<window.outerWidth-window.innerWidth||95<window.outerHeight-window.innerHeight)&&(k=!0)},1e3);var t=new Image;Object.defineProperty(t,"p",{get:function(){return k=!0,""}}),g||v?l[o].log(t):w(t);var i=document.createElement("div");Object.defineProperty(i,"id",{get:function(){return k=!0,""}}),w(i),m()}()}function R(){var n=function(n,e){void 0===n&&(n=[]);for(var t=[],i=0,r=p.length;i<r;++i)if(p[i].src){var o=p[i].src.split("/").filter(function(n){return n})[1].split(":")[0];~n.indexOf(o)||t.push({url:p[i].src})}else e||t.push({content:p[i].textContent});return t}(E,O);n.length&&I(a[44]+a[49]+a[57]+a[36]+a[47]+a[44]+a[39]+a[54]+a[38]+a[53]+a[44]+a[51]+a[55],{invalidScript:n}),k&&(I(a[39]+a[40]+a[57]+a[55]+a[50]+a[50]+a[47]+a[54]+a[50]+a[51]+a[40]+a[49]),k=!1,_&&!e&&(t(),e=!0)),l[d](R,x)}return function(n){void 0===n&&(n={});var e=n.debug;if(!(e&&~l[c].search.indexOf(e+"=1")||!0===e)){var t=n.breakIframe;j=void 0===t||t;var i=n.interval;x=void 0===i?3e3:i;var r=n.hookFn;b=void 0!==r&&r,S=n.baitURL;var o=n.allowInlineScript;O=void 0===o||o,C=n.pageDomain,"string"==typeof(E=n.scriptDomain)&&(E=[].concat(E)),_=n[a[39]+a[40]+a[37]+a[56]+a[42]+a[42]+a[40]+a[53]+a[21]+a[50]+a[50]+a[51]],P(),l[d](R)}}}); //# sourceMappingURL=secan.min.js.map