programing

Angular는 XSS 또는 CSRF를 어떻게 처리합니까?

closeapi 2023. 7. 5. 20:45
반응형

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

반응형