Security Considerations
This document covers security considerations for users and developers of SHIELD.For Users
Link Security
The secure link is the only way to access encrypted content. Treat it accordingly:Copy Immediately
The link is only shown once. Screenshot or copy it immediately.
Share Securely
Don’t post links publicly. Use private channels (DMs, encrypted email).
Verify Recipient
Double-check the wallet address before creating a policy.
Set Reasonable Limits
Don’t set 1-hour expiration for someone in a different time zone.
Wallet Security
Your wallet is your identity on SHIELD:- Never share your private key or seed phrase
- Verify transaction details before signing
- Use hardware wallets for high-value accounts
- Check the URL is app.shieldhq.xyz before connecting
Phishing Protection
Watch for these red flags:| Legitimate | Phishing |
|---|---|
URL: app.shieldhq.xyz | URL: shield-app.xyz |
| Asks for SIWE signature | Asks for private key |
| Shows policy before signing | Signs unknown transaction |
| HTTPS with valid certificate | Certificate warnings |
Content Visibility
Understand who can see what:- Before sharing: Only you (encrypted on your device)
- During sharing: Only link holder (encryption key in URL)
- After access: Recipient has plaintext (save it if needed)
- On-chain: Only access metadata, never content
For Developers
Environment Variables
Never commit these to version control:.env.examplefor documentation.env.localfor local development (gitignored)- Platform env vars (Vercel, etc.) for production
Database Security
PostgreSQL security checklist:- Use connection pooling (PgBouncer)
- Enable SSL/TLS for connections
- Restrict IP allowlist
- Use strong passwords
- Enable query logging
- Regular backups
API Security
Rate limiting is implemented:src/lib/rateLimit.ts.
Smart Contract Security
Shield contract security features:Content Validation
Before uploading to IPFS:- Validate file size limits
- Check MIME type if needed
- Scan for malware (if required)
- Sanitize filenames
Dependency Security
Keep dependencies updated:Deployment Security
Vercel Security
- Enable Vercel Authentication for deployments
- Use Production Branch Protection
- Enable DDoS Protection
- Configure Custom Headers for security
Database Security (Neon)
Contract Deployment
Best practices:- Test on Sepolia first
- Verify source code on BaseScan
- Use multisig for admin functions
- Document the deployment
Incident Response
Reporting Security Issues
Found a vulnerability? Contact us:- Email: shieldencrypted@gmail.com
- PGP: Key
- Bug Bounty: HackerOne
What to Include
- Description of the issue
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
Known Limitations
Frontend Trust
Users must trust the JavaScript served by shield.app. Mitigations:- Code is open source (auditable)
- Subresource Integrity (SRI) headers
- Content Security Policy (CSP)
Browser Security
Encryption happens in the browser, which:- Could have malware
- Could be using outdated browser
- Could have malicious extensions
Social Engineering
Technical security can’t prevent:- Sending to wrong address (typo)
- Sharing link publicly
- Falling for phishing sites
Security Checklist
Before going to production:- Environment variables secured
- Database SSL enabled
- Rate limiting configured
- CORS properly set
- Content Security Policy enabled
- Smart contract verified on BaseScan
- Dependencies audited
- Domain secured (DNSSEC, HTTPS)
- Monitoring alerts configured
- Incident response plan documented

