웹 서비스를 개발하다보니 데이터 전송 보안 관련 된 것도 공부가 필요하여 요점만 정리해보았습니다.

장고로는 데이터 전송 보안 기능도 쉽게 뚝딱 구현할 수 있는데요.

장고 및 nginx, 서버에서 데이터 전송 보안을 어떻게 구현 할 수 있는지 키워드 위주로만 일단 정리해보았습니다.

1. HTTPS 사용

전송 중 데이터 암호화

클라이언트와 서버 간에 전송되는 데이터를 HTTPS를 사용하여 암호화 할 수 있습니다.

이는 전체 통신 채널을 암호화하여 데이터 가로채기 및 도청을 방지할 수 있습니다.

AWS 에서

서버 에서

2. 인증 및 승인 구현

사용자 신원 확인

역할 기반 액세스 제어(RBAC)

3. 입력 검증 및 정리

삽입 공격 방지

SQL 주입 기타 주입 공격으로부터 보호하기 위해 모든 입력 데이터를 검증해야 합니다.

django 에서

장고 ORM

4. 속도 제한 및 제한

무차별 대입 공격으로부터 API를 보호하고 지정된 기간 내에 클라이언트가 보낼 수 있는 요청 수를 제어하기 위해 속도 제한 및 조절을 구현합니다.

django 에서

Nginx 에서

5. 서버 데이터 암호화

서버에 저장된 민감한 데이터를 암호화하여 데이터 침해 시 무단 액세스로부터 서버를 보호할 수 있습니다.

django 에서

6. 로깅 및 모니터링

로깅 및 모니터링을 구현하여 액세스 및 사용 패턴을 추적하고, 의심스러운 활동을 감지하고, 잠재적인 보안 사고에 즉시 대응합니다.

AWS 에서

Nginx 에서

7. 교차 원본 리소스 공유(CORS)

API에 요청할 수 있는 도메인을 제한하도록 CORS 정책을 구성하여 교차 원본 공격의 위험을 줄입니다.

CORS(Cross-Origin Resource Sharing)는 웹사이트가 다른 도메인의 리소스를 요청할 수 있도록 하는 브라우저 기능입니다. 이는 어떤 웹사이트가 서로 상호 작용할 수 있는지 제어하고 보호하여 무단 데이터 공유를 방지하는 데 도움이 됩니다.

짧게 말해 특정 도메인에서만 API 서버에 엑세스 할 수 제어할 수 있다는 의미입니다.

django 에서

8. CSRF 보호

CSRF(Cross-Site Request Forgery) 공격은 사용자가 인증된 다른 웹 애플리케이션에서 원치 않는 작업을 실행하도록 속입니다.

이는 사용자 브라우저에 대한 사이트의 신뢰를 악용하여 공격자가 사용자 동의 없이 양식 제출이나 설정 변경과 같은 작업을 수행할 수 있도록 허용합니다.

이는 form에 anti CSRF 토큰을 구현하고 서버 측에서 이러한 토큰의 유효성을 검사함으로써 방지할 수 있습니다.

django 에서

form에서 CSRF 보호 관련

참고하면 좋은 글

https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다


목차