A massive outage at Cloudflare brought down major platforms, including X (formerly Twitter), ChatGPT, and thousands of other websites on November 18,…
Image: AI Generated Imagine your GPS telling you you're in Delhi when you're actually flying over Nepal. Now imagine you're a pilot tryin…
Just days after Amazon's massive cloud failure , Microsoft Azure has experienced a global outage—exposing the alarming vulnerability of our cloud…
When Amazon’s cloud catches a cold, the internet sneezes. That’s what happened again this week, as Amazon Web Services (AWS) — the backbone of much o…
A catastrophic battery fire at South Korea's national data centre has permanently destroyed 858 terabytes of critical government data—roughly eig…
Proxmox VE is a powerful open-source virtualisation platform trusted by businesses for its flexibility, cost efficiency and stability. Like any virtu…
A glance across the current IT landscape will reveal a clear trend. Systems are sprawling. Devices multiply, connections snake in every direction, an…
Imagine making a phone call that connects instantly with crystal-clear audio, uses less battery, and never drops mid-conversation. This isn't a f…
A massive security lapse has left millions of internet users vulnerable to DNS query interception after a certificate authority (CA) improperly issue…
Security researcher James Kettle is going to present significant findings on HTTP desync vulnerabilities at upcoming cybersecurity conferences, demon…
You think you're private. That no one knows what sites you signed up for in college, what silly comment you left on a forum in 2012, or what sket…
In 2025, we live in a digital landscape packed with shiny, fast-moving tools — chat apps , AI-generated responses, and real-time dashboards. It’s tem…
The Domain Name System (DNS) is the backbone of the internet, translating human-readable domain names like example.com into machine-readable IP addr…
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();
})();