Yapay zeka destekli QR phishing yani quishing detektörü. QR kodları telefonunuzla doğrudan okutmak yerine web sitesi üzerinden tarayın. URL, ziyaret edilmeden önce bir makine öğrenmesi yığını tarafından incelenir.
Kamerayı bir QR koda tutun. QuishGuard URL'yi çıkarır, XGBoost ve Random Forest modelleri üzerinden geçirir ve telefonunuz bağlantıyı ziyaret etmeden önce gerekçeleriyle birlikte bir risk skoru döndürür.
React + Vite (Vercel) · FastAPI (Railway) · XGBoost & Random Forest (scikit-learn) · LSTM & BiLSTM eğitildi, üretimde çalıştırılmıyor (Railway'de GPU yok)
PhiUSIIL Phishing URL Dataset üzerinde eğitildi (235.795 URL), 17 URL yapısal özelliği kullanıldı. Veri sızıntısı ve koleksiyon yanlılığı nedeniyle sayfa kaynaklı özellikler ve IsHTTPS hariç tutuldu.
| Model | Doğruluk | F1 |
|---|---|---|
| XGBoost | 0.9942 | 0.9933 |
| Random Forest | 0.9964 | 0.9958 |
| LSTM | 0.9980 | 0.9977 |
| BiLSTM | 0.9981 | 0.9978 |
# Frontend
cd frontend && npm install && npm run dev
# Backend
cd backend && pip install -r requirements.txt && uvicorn main:app --reloadfrontend/.env.local dosyasına VITE_API_URL=http://localhost:8080 ekleyin.
MIT
AI-powered QR code phishing thus a quishing detector. Scan QR codes through the website instead of your phone, the URL gets analyzed by an ML ensemble before anything is visited.
Point your camera at a QR code. QuishGuard extracts the URL, runs it through XGBoost and Random Forest models, and returns a risk score with reasons — before your phone ever visits the link.
React + Vite (Vercel) · FastAPI (Railway) · XGBoost & Random Forest (scikit-learn) · LSTM & BiLSTM trained but not served in production (no GPU on Railway)
Trained on the PhiUSIIL Phishing URL Dataset (235,795 URLs) using 17 URL-structural features. Page-source features and IsHTTPS were excluded due to data leakage and collection bias.
| Model | Accuracy | F1 |
|---|---|---|
| XGBoost | 0.9942 | 0.9933 |
| Random Forest | 0.9964 | 0.9958 |
| LSTM | 0.9980 | 0.9977 |
| BiLSTM | 0.9981 | 0.9978 |
# Frontend
cd frontend && npm install && npm run dev
# Backend
cd backend && pip install -r requirements.txt && uvicorn main:app --reloadSet VITE_API_URL=http://localhost:8080 in frontend/.env.local.
MIT

