With the increase in cyber-attacks, security of the digital assets and identity is a prior concern for every organization, business house, or ind…
Offensive Security have just released the latest version of the Kali Linux 2017.2. In this release team have rolled up all the updates on tools an…
Recently we have seen there are critical security bug that have been disclosed in Apache Struts. Moreover, another worst data breach has been to…
One of the most popular system utility app " CCleaner " which have more than 2 billions download and has more than 2 million active user…
Remembered in 2014, one of the biggest BTC exchanges "Mt. Gox" had been hacked and all its bitcoins were stolen hackers have also leake…
Once again OurMine is in news headlines, as they have recently hacked Vevo and leaked about 3.12 TB of data online. (Now it is removed) The le…
After WannaCry, here is another destructive and worst situation for almost all gadgets and smart devices. About 8.5 billion devices with the Bluet…
Here is the another leak of CIA from Vault 7 series by Wikileaks. This time the documents provide details about the Project Protego, a CIA Secret …
Once again popular hackers team 'OurMine' is making the headlines. After the recent hack of PlayStation and HBO's social media account…
Earlier this month, hackers are continuously leaking all the episodes of the Game Of Thrones and now only the finale episodes has been left. Reg…
const config = {
safeID = 'safelink',
safeURL: ['/p/safelink.html'],
timer: 15,
redirect: true,
text: {
wait: 'The link will appear in 0 second',
direct: 'You’ll be redirected to the download link in 0 second',
shifted: 'Redirecting... [link] if you’re not redirected automatically.',
click: 'Click here',
btn: 'Direct to link.'
}
};
(() => {
const randomURL = url => url[Math.floor(Math.random() * url.length)];
const safeLink = () => config.safeURL.some(path => location.pathname.endsWith(path));
const safeMessage = (text, time) => {
const [start, end] = text.split('0');
return `${start} ${time} ${end}.
`;
};
const outboundLinks = () => {
const links = document.querySelectorAll('a.safeurl[href]');
if (!links.length) return;
links.forEach(anchor => {
const encoded = encodeURIComponent(btoa(anchor.href));
Object.assign(anchor, {
href: `${location.origin}${randomURL(config.safeURL)}?go=${encoded}`,
target: '_self',
rel: 'noopener'
})
})
};
const handleLink = () => {
const params = new URLSearchParams(location.search);
const encoded = params.get('go');
if (!encoded) return;
const link = atob(decodeURIComponent(encoded))
params.delete('go');
history.replaceState({}, '', location.pathname + (params.toString() ? '?' + params : ''));
let counter = config.timer;
const label = config.redirect ? config.text.direct : config.text.wait;
const box = document.getElementById(config.safeID);
if (!box) return;
box.removeAttribute('hidden');
box.innerHTML = safeMessage(label, counter);
const countdown = setInterval(() => {
counter--;
box.innerHTML = safeMessage(label, counter);
if (counter > 0) return;
clearInterval(countdown);
if (config.redirect) {
box.innerHTML = `${config.text.shifted.replace('[link]', `${config.text.click}`)}
`;
location.href = link;
} else {
box.innerHTML = '';
const btn = document.createElement('a');
//btn.className = 'btn';
btn.href = link;
btn.target = '_blank';
btn.rel = 'nofollow noopener noreferrer';
btn.innerHTML = `${config.text.btn}`;
box.appendChild(btn);
}
}, 1000)
};
safeLink() ? handleLink() : outboundLinks();
})();