Angular는 XSS 또는 CSRF를 어떻게 처리합니까?
Angular(2)는 XSS와 CSRF를 어떻게 처리합니까?이런 공격을 감당할 수 있을까요?그렇다면 이 보호를 사용하려면 어떻게 해야 합니까?그렇지 않다면 서버에서 이러한 모든 공격을 처리해야 합니까, 아니면 프론트엔드에서 TypeScript를 사용하여 어떻게든 처리해야 합니까?
당신이 사용해야 한다는 것을 읽었습니다.withCredentials: true
하지만 이 코드를 어디에 두어야 할지, 그것이 심지어 그것인지, 제가 찾고 있는 것이 무엇인지 잘 모르겠습니다.
https://angular.io/ 웹 페이지에서 저는 이것에 대해 아무것도 찾지 못했습니다.
Angular2는 기본적으로 활성화된 내장*의 안티 XSS 및 CSRF/XSRF 보호 기능을 제공합니다.
돔 위생화 서비스는 XSS 공격을 방지하기 위해 위험한 비트를 제거합니다.
쿠키XSRF 전략 클래스(XHR Connection 클래스 내)는 CSRF/XSRF 공격을 방지합니다.
*CSRF/XSRF 보호는 클라이언트에서 기본적으로 활성화되지만 사용자 인증 시 백엔드에서 XSRF-TOKEN이라는 쿠키를 임의의 값으로 설정한 경우에만 작동합니다.쿠키와 헤더 간 토큰 패턴에 대한 자세한 내용은 를 참조하십시오.
업데이트: Angular2 공식 보안 문서: https://angular.io/docs/ts/latest/guide/security.html (편집 제안에 대해 마틴 프로스트에게 감사드립니다!)
Angular에서 언급된 서버 측의 경우 Express를 사용하여 처리할 수 있는 CSRF:
app.use(express.csrf())
app.use(function (req, res, next) {
res.cookie('XSRF-TOKEN', req.session._csrf);
res.locals.csrftoken = req.session._csrf;
next();
})
그러나 새 HttpClientXsrfModule에서 여전히 필요한지는 확실하지 않습니다.app.module의 클라이언트 측에 다음 사항만 추가하면 충분할 수 있습니다(그러나 확인이 필요합니다).
HttpClientXsrfModule.withOptions({
cookieName: 'XSRF-TOKEN',
headerName: 'X-XSRF-TOKEN'
})
다음은 SpringBoot를 사용할 때 백엔드/서버 측 구현에서 CSRF를 처리하는 방법에 대한 간단한 가이드입니다.
CSRF의 토큰은 HttpSession 또는 쿠키와 연결될 수 있습니다.
쿠키로 취급하기 위해, 우리는 통과할 수 있습니다.
.csrfTokenRepository(new CookieCsrfTokenRepository())
HttpSession으로 처리하기 위해 다음을 통과할 수 있습니다.
.csrfTokenRepository(new HttpSessionCsrfTokenRepository())
특정 URL 등을 건너뛰어야 할 경우에 대비하여 CsrfTokenRepository를 구현하여 사용자 지정 csrf 토큰 저장소를 가질 수도 있습니다.
위의 모든 것은 WebSecurityConfigurerAdapter의 구성 메서드를 재정의할 때 사용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/36594516/how-does-angular-handle-xss-or-csrf
'programing' 카테고리의 다른 글
SQL Oracle 정렬 문자열(숫자) 및 (숫자가 있는 문자) (0) | 2023.07.10 |
---|---|
사용자 정의 ID를 가진 문서를 Firestore에 추가하는 방법 (0) | 2023.07.10 |
MVC4에서 BundleCollection이 캐시된 스크립트 번들을 강제로 플러시하는 방법 (0) | 2023.07.05 |
유성 업서트 사용 방법 (0) | 2023.07.05 |
일반 개체를 mongoose 문서에 캐스팅 (0) | 2023.07.05 |