Spaces:
Running
Running
| // (function () { | |
| // const allowedOrigin = window.location.origin; | |
| // const originalAssign = window.location.assign; | |
| // const originalReplace = window.location.replace; | |
| // function isAllowed(url) { | |
| // try { | |
| // const u = new URL(url, window.location.href); | |
| // return u.origin === allowedOrigin; | |
| // } catch (e) { | |
| // return false; | |
| // } | |
| // } | |
| // window.location.assign = function (url) { | |
| // if (isAllowed(url)) { | |
| // originalAssign.call(window.location, url); | |
| // } else { | |
| // console.warn("Blocked redirect to:", url); | |
| // } | |
| // }; | |
| // window.location.replace = function (url) { | |
| // if (isAllowed(url)) { | |
| // originalReplace.call(window.location, url); | |
| // } else { | |
| // console.warn("Blocked redirect to:", url); | |
| // } | |
| // }; | |
| // })(); | |
| let lastSafeURL = location.href; | |
| setInterval(() => { | |
| if (location.href !== lastSafeURL) { | |
| const newURL = new URL(location.href); | |
| if (newURL.origin !== location.origin) { | |
| console.warn("Redirect blocked:", location.href); | |
| history.pushState(null, "", lastSafeURL); | |
| } else { | |
| lastSafeURL = location.href; | |
| } | |
| } | |
| }, 50); |