- 보안은 기능적 특징 외 비기능적 특징 중 하나이며, 성능, 확장성, 가용성과 함께 고려해야 할 중요한 요소입니다. 🛡️
- 데이터 암호화, 리소스 보호, 시스템 간 신뢰 구축은 소프트웨어 보안 구현을 위한 필수적인 요소입니다. 🔑
- 보안 수준이 높아질수록 비용이 증가하지만, 사고 발생 시 더 큰 손실을 초래할 수 있으므로 적절한 수준 유지가 중요합니다. 💰
- 개발자는 행정안전부 가이드 문서를 참고하여 보안 수준에 대한 근거를 제시하고, 합리적인 비용을 제안할 수 있습니다. 📑
- 일반적인 보안 취약점에는 인증/인가 취약점, 세션 고정, XXS(교차 사이트 스크립팅), 인젝션(SQL 인젝션), 민감한 데이터 노출 등이 있습니다. 🚨
- 민감한 데이터 노출을 방지하기 위해 API 에러 발생 시 500 에러를 그대로 프론트엔드로 전달하는 것을 지양해야 합니다. 🚫
- 알려진 취약성이 있는 종속성(CVE)을 사용하는 것은 위험하며, 깃허브 등에서 제공하는 알림을 통해 지속적인 점검이 필요합니다. ⚠️
- CSRF(사이트 간 요청 위조) 공격을 방지하기 위해 URL만으로 요청을 처리하지 않고, 적절한 인증 및 권한 부여 메커니즘을 구축해야 합니다. 🔗