steelforesight/src
alireza 743888429b Security hardening + navbar restructure
Security fixes:
- JWT_SECRET/ADMIN_PASSWORD fail-fast on missing/weak values
- Switch admin auth from localStorage to httpOnly cookie
- Rate limiting on login (10/15min) and contact form (3/10min)
- CORS whitelist via ALLOWED_ORIGINS env var
- Helmet with CSP, frameguard
- Escape HTML in contact email and admin panel innerHTML
- Remove SVG from upload whitelist
- err.message no longer leaked in API responses
- MAIL_TO moved to env var
- JWT expiry 7d → 24h

Navbar:
- Rename: رادار آینده → آینده‌پژوهی و رصد هوشمند
- Rename: مرز فناوری → فناوری و نوآوری
- Rename: نبض صنعت → بازار و زنجیره فولاد
- Add: پایداری و فولاد سبز (/sustainability)
- Add: ژئوپلیتیک و اقتصاد جهانی (/geopolitics)
- Remove: رویدادها

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 14:37:30 +03:30
..
app Security hardening + navbar restructure 2026-06-01 14:37:30 +03:30
assets Remove binary assets from tracking, add to gitignore 2026-06-01 11:11:31 +03:30
components/ui Bilingual site (FA/EN), redesigned sections, new pages 2026-05-31 11:18:35 +03:30
context Bilingual site (FA/EN), redesigned sections, new pages 2026-05-31 11:18:35 +03:30
data Add admin panel + wire main site to fetch articles from panel API 2026-05-26 17:11:04 +03:30
lib Initial commit 2026-05-25 16:07:58 +03:30
pages Security hardening + navbar restructure 2026-06-01 14:37:30 +03:30
App.tsx Initial commit 2026-05-25 16:07:58 +03:30
index.css Risk slider, footer fix, global padding, mobile improvements 2026-06-01 10:51:45 +03:30
main.tsx Add admin panel + wire main site to fetch articles from panel API 2026-05-26 17:11:04 +03:30