const express = require('express');
const helmet = require('helmet');
const app = express();
// Content Security Policy konfigurieren
app.use(
helmet.contentSecurityPolicy({
directives: {
defaultSrc: ["'self'"], // Erlaubt Inhalte nur von der eigenen Domain
scriptSrc: ["'self'", "https://trusted-cdn.com"], // Erlaubt Skripte von der eigenen Domain und einem CDN
styleSrc: ["'self'", "'unsafe-inline'", "https://trusted-cdn.com"], // Erlaubt Styles von der eigenen Domain, Inline-Styles und einem CDN
imgSrc: ["'self'", "https://images.com"], // Erlaubt Bilder von der eigenen Domain und einem Bildhosting-Dienst
connectSrc: ["'self'", "https://api.example.com"], // Erlaubt Verbindungen zur eigenen Domain und einer API
fontSrc: ["'self'", "https://fonts.gstatic.com"], // Erlaubt Schriftarten von der eigenen Domain und Google Fonts
objectSrc: ["'none'"], // Blockiert Objekte wie Flash
upgradeInsecureRequests: [], // Erzwingt HTTPS für alle HTTP-Anfragen
},
})
);
app.get('/', (req, res) => {
res.send('<h1>Content Security Policy mit Helmet</h1>');
});
// Server starten
const PORT = 3000;
app.listen(PORT, () => {
console.log(`Server läuft auf http://localhost:${PORT}`);
});