Skip to content

Commit e3b6043

Browse files
committed
Add SecurityHeadersFilter for hardened HTTP responses
1 parent eede595 commit e3b6043

2 files changed

Lines changed: 29 additions & 5 deletions

File tree

src/main/java/org/juv25d/App.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
package org.juv25d;
22

3-
import org.juv25d.filter.IpFilter;
4-
import org.juv25d.filter.LoggingFilter;
5-
import org.juv25d.filter.RateLimitingFilter;
3+
import org.juv25d.filter.*;
64
import org.juv25d.logging.ServerLogging;
75
import org.juv25d.http.HttpParser;
86
import org.juv25d.plugin.NotFoundPlugin; // New import
97
import org.juv25d.plugin.StaticFilesPlugin;
108
import org.juv25d.router.SimpleRouter; // New import
119
import org.juv25d.util.ConfigLoader;
12-
import org.juv25d.filter.RedirectFilter;
13-
import org.juv25d.filter.RedirectRule;
10+
1411
import java.util.List;
1512

1613
import java.util.Set;
@@ -41,6 +38,8 @@ public static void main(String[] args) {
4138

4239
pipeline.addGlobalFilter(new LoggingFilter(), 0);
4340

41+
pipeline.addGlobalFilter(new SecurityHeadersFilter(), 0);
42+
4443
if (config.isRateLimitingEnabled()) {
4544
pipeline.addGlobalFilter(new RateLimitingFilter(
4645
config.getRequestsPerMinute(),
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
package org.juv25d.filter;
3+
4+
import org.juv25d.http.HttpRequest;
5+
import org.juv25d.http.HttpResponse;
6+
import java.io.IOException;
7+
8+
/**
9+
* Filter som lägger till säkerhetsheaders till varje HTTP-svar.
10+
* Detta hjälper till att skydda mot attacker som Clickjacking och MIME-sniffing.
11+
*/
12+
public class SecurityHeadersFilter implements Filter {
13+
14+
@Override
15+
public void doFilter(HttpRequest req, HttpResponse res, FilterChain chain) throws IOException {
16+
chain.doFilter(req, res);
17+
18+
res.setHeader("X-Content-Type-Options", "nosniff");
19+
res.setHeader("X-Frame-Options", "DENY");
20+
res.setHeader("X-XSS-Protection", "1; mode=block");
21+
res.setHeader("Referrer-Policy", "no-referrer");
22+
}
23+
}
24+
25+

0 commit comments

Comments
 (0)