백/back-end

[백엔드]백엔드 개발자가 알아야 하는 보안 관련 내용

연지양갱 2023. 10. 21. 15:52
728x90
반응형
SMALL

출처 : https://www.developerfastlane.com/blog/backend-developer-roadmap

백엔드 개발자가 알아야 하는 보안 관련 내용

  1. 인증(Authentication)과 인가(Authorization) : 사용자의 신원을 확인하는 인증과 해당 사용자에게 적절한 권한 부여하는 인가는 보안의 핵심 요소입니다. 일반적으로 이는 세션, 토큰, OAuth 등 다양한 기술을 통해 구현됩니다.
  2. SQL Injection : SQL Injection은 공격자가 악의적인 SQL 코드를 주입하여 데이터베이스를 조작하려고 시도하는 공격입니다. 이를 방지하기 위해서는 입력값 검증, 파라미터화된 쿼리 사용 등이 필요합니다.
  3. Cross-Site Scripting(XSS) : XSS는 공격자가 웹 사이트에 악성 스크립트를 주입하려고 시도하는 공격입니다. 이를 방지 하기 위해 출력 데이터의 적절한 이스케이프(escape), Content Security Policy(CSP) 설정 등이 필요합니다.
  4. Cross-Site Request Forgery(CSRF) :  CSRF는 사용자가 자신의 의지와 무관하게 공격자가 지정한 행동을 실행하게 만드는 공격입니다. 이를 방지하기 위해 CSRF토큰 사용, SameSite Cookie 속성 설정 등이 필요합니다.
  5. API 보안 : REST API나 GraphQL API 등에서도 인증/인가, 입력값 검증 및 제어, Rate Limiting(요청 수 제한) 등 다양한 보안 조치들이 필요합니다.
  6. 데이터 보안 : 민감 정보(예:비밀번호)은 해시와 솔트(salt)를 사용하여 저장되어야 합니다. 또한 SSL/TLS를 활용하여 데이터 전송 경로에서 발생할 수 있는 중간자 공격(MITM)을 방어해야 합니다.
  7. 서버보안 : 서버 자체의 보안 역시 중요합니다. 최신 패치 및 업데이트 유지, 최소 권한 원칙(principle of least privilege), 방화벽 설정 등으로 서버를 안전하게 유지해야합니다.
  8. 로깅 및 모니터링 : 시스템에서 발생하는 모든 작업을 로깅하고, 이상 징후에 대해 알림을 받을 수 있도록 모니터링하는 것은 잠재적인 보안 위협에 신속하게 대응할 수 있게 합니다.
  9. 디펜시브 프로그래밍 : 예상치 못한 입력이나 행동에 대비하기 위해 코드를 작성하는 방법론입니다. 입력값 검증, 오류 처리 등의 방법으로 시스템의 안정성과 보안성을 높입니다.

 

 

백엔드 개발자라면 꼭 해봐야하는 내용을 적어보았습니다.

제가 백엔드 개발을 직접 한 것은 아니지만 옆에서 지켜보고 흥미가 생겼던 내용이라면 위와 같은 내용입니다.

인증과 인가는 firebase를 통해서 구현해 본적도 있답니다. 

SQL Injection에서는 인덱스 등 조회 부분에서 더 신경 써야합니다. 물론 추가하는 코드에서도 더 중요하게 확인하고 추가해야하죠.

생각은 해본적이 많은데 직접 구현해본 적이 없는 것 같아서 꼭 해보고 싶네요!

 

가장 중요한 것과 할 수 있는 보안 내용으로는

 인증과 인가, SQL Injection, API 보안을 가장 해보고 싶네요!

다음에 프로젝트를 진행하면서 해당 내용을 추가해보고 직접 코드를 작성해보겠습니다!

 

 

 

반응형