Your Friendly Anti-Phishing Chrome Extension
PhishPal automatically adds a "🔍 Scan" button when you hover over any HTTP/HTTPS link. Click to instantly check the link's reputation through our secure backend API.
Get instant visual feedback with color-coded indicators:
Hover over result markers to see comprehensive VirusTotal statistics including malicious, suspicious, harmless, and undetected counts from multiple security engines.
Our Railway backend handles API rate limiting, caching, and optimization. No need to manage your own VirusTotal API key - everything works seamlessly out of the box!
PhishPal now uses a secure backend API deployed on Railway for enhanced performance and reliability
Content & Background Scripts
Express.js API Server
Threat Intelligence
Your VirusTotal API key is safely stored on our backend server, never exposed to the client-side extension code.
Backend handles API rate limits intelligently and caches results to improve performance and reduce API usage.
Railway deployment ensures high availability and fast response times from anywhere in the world.
Centralized backend makes updates and improvements seamless without requiring extension updates.
Content script detects when you hover over HTTP/HTTPS links and dynamically creates scan buttons
Click the "🔍 Scan" button to initiate URL analysis. Button shows loading state during scan
Background script sends URL to secure Railway backend server, which handles VirusTotal API calls, rate limiting, and caching
Scan button is replaced with color-coded result marker and detailed tooltip with engine statistics
Choose your preferred installation method - now with simplified setup!
Here's how PhishPal now communicates with the Railway backend:
// New backend API integration
async function checkUrlWithBackend(url) {
try {
const response = await fetch('https://phishpal-backend-production.up.railway.app/api/check-url', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ url })
});
if (!response.ok) {
throw new Error(`Backend error: ${response.status}`);
}
const data = await response.json();
return data.stats;
} catch (error) {
console.error('Backend failed:', error);
return {
harmless: 0,
malicious: 0,
suspicious: 1,
undetected: 0
};
}
}
// Message handling for content script communication
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
if (request.action === "scanLink" && request.link) {
checkUrlWithBackend(request.link)
.then(stats => sendResponse({ stats }))
.catch(error => {
console.error("Scan error:", error);
sendResponse({
error: error.message,
stats: { harmless: 0, malicious: 0, suspicious: 1, undetected: 0 }
});
});
return true;
}
});
Once installed, PhishPal will work on any website. Here are some example links to test:
Hover over these links after installation to see PhishPal in action!
Enhanced Manifest V3 Architecture:
{
"manifest_version": 3,
"name": "Phishing Hover Detector",
"version": "1.1",
"permissions": ["scripting", "tabs", "storage"],
"host_permissions": [
"<all_urls>",
"https://phishpal-backend-production.up.railway.app/*"
],
"background": {
"service_worker": "background.js"
},
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["content.js"]
}],
"icons": {
"48": "icon48.png"
}
}
Key Improvements:
PhishPal is an MVP (Minimum Viable Product) designed for educational and demonstration purposes. While it provides real threat detection using VirusTotal's API through our secure backend, users should: