728x90
1. CSP 란?
CSP 는 외부의 스크립트 공격인 (XSS)로부터 보호하기 위한 정책이다. CSP를 설정하면 지정된 origin이 아닌 다른 경로를 통해서 들어오는 입력을 방지할 수 있다.
각 source에 대해 지정하는 parameter가 쉽게 정리되어 있는 블로그를 참조하자.
2. NodeJs server-side CSP 설정하기
node js의 helmet을 사용하게 되면 CSP를 지정하게 되는데, 그냥 use 만 사용하게되면 외부의 참조 데이터나 부트스트랩과 같은 스크립트를 불러올때 에러가 발생한다.
이를 수정하기 위해서 CSP 규정을 지정해 준다.
app.use(helmet.contentSecurityPolicy({
directives: {
defaultSrc: ["'self'"],
scriptSrc: ["'self'", "'unsafe-inline'", 'blob:', 'cdn.jsdelivr.net','ajax.googleapis.com'],
imgSrc:["'self'","*.unsplash.com"],
objectSrc: ["'none'"],
upgradeInsecureRequests: [],
},
}));
728x90
728x90