You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Clarifies that:
- SSRF protection works automatically without configuration
- All private IPs and localhost are blocked by default
- Optional FEED_PROXY env var for enhanced security in production
- Protection applies to all requests including redirects
Copy file name to clipboardExpand all lines: README.md
+26Lines changed: 26 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -51,6 +51,32 @@ curl -X 'GET' \
51
51
To use the self-hosted frontend, you should change `apiBaseUrl` in
52
52
`frontend/static/app.js` to match the backend URL.
53
53
54
+
### Security
55
+
56
+
#### SSRF Protection
57
+
58
+
RSS Filter includes built-in protection against Server-Side Request Forgery (SSRF) attacks. When fetching feeds, the application automatically blocks requests to:
59
+
- Private IP ranges (192.168.x.x, 10.x.x.x, 172.16.x.x-172.31.x.x)
60
+
- Localhost (127.x.x.x, ::1)
61
+
- Link-local addresses (169.254.x.x)
62
+
- AWS metadata service (169.254.169.254)
63
+
64
+
This protection works **automatically for basic setups** - no configuration needed. The application validates DNS resolution for all requests, including redirects.
65
+
66
+
#### Enhanced Security with Proxy (Optional)
67
+
68
+
For additional security in production environments, you can route all feed requests through a proxy that only allows external hosts:
69
+
70
+
```yaml
71
+
# docker-compose.yaml
72
+
services:
73
+
backend:
74
+
environment:
75
+
FEED_PROXY: http://gluetun:8888 # Your proxy service
76
+
```
77
+
78
+
Using a proxy provides defense-in-depth by enforcing network-level isolation.
0 commit comments