
API 설계, 테스트, 출시 시 가장 중요한 보안 대책 체크리스트
English | 繁中版 | 简中版 | العربية | Azərbaycan | Български | বাংলা | Català | Čeština | Deutsch | Ελληνικά | Español | فارسی | Français | हिंदी | Indonesia | Italiano | 日本語 | ພາສາລາວ | Македонски | മലയാളം | Монгол | Nederlands | Polski | Português (Brasil) | Русский | ไทย | Türkçe | Українська | Tiếng Việt
API를 설계하고, 테스트하고, 배포할 때 고려해야 할 중요한 보안 대책에 대한 점검 목록입니다.
Basic Auth를 사용하지 말고 표준 인증방식을 사용하세요.인증, 토큰 생성, 패스워드 저장은 직접 개발하지 말고 표준을 사용하세요.Max Retry와 격리 기능을 사용하세요.HSTS 헤더를 SSL과 함께 사용하세요.redirect_uri의 유효성을 항상 검증하세요.response_type=token을 허용하지 마세요)state 파라미터를 사용하세요.GET (읽기), POST (생성), PUT (대체/갱신), DELETE (삭제). 그리고 요청 메소드가 리소스에 적합하지 않은 경우 405 Method Not Allowed로 응답하세요.application/xml이나 application/json 등)만을 허용하려면 요청의 Accept 헤더에서 content-type의 유효성을 검사하고 일치하지 않으면 406 Not Acceptable로 응답하세요.content-type을 검증하세요. (예를 들어 application/x-www-form-urlencoded나 multipart/form-data 또는 등)/user/654321/orders 대신 /me/orders를 사용하세요.UUID를 사용하세요.XXE (XML 외부 엔티티 공격, XML external entity attack)를 피하기 위해 엔티티 파싱을 비활성화하세요.X-Content-Type-Options: nosniff 헤더를 반환하세요.X-Frame-Options: deny 헤더를 반환하세요.Content-Security-Policy: default-src 'none' 헤더를 반환하세요.X-Powered-By, Server, X-AspNet-Version 등의 디지털 지문 (fingerprinting) 성격의 헤더는 제거하세요.content-type을 강제하세요. 만약 application/json 데이터를 반환하고 있다면 응답의 content-type은 application/json입니다.포크, 변경, pull request를 보내 자유롭게 기여하세요. 질문은 [email protected]로 이메일을 보내주세요.
application/jsonXSS, SQL-Injection 또는 Remote Code Execution 등)자격 인증 (credentials), 패스워드, 보안 토큰 또는 API 키)도 포함하고 있어서는 안 되며 이러한 것들은 표준 인증 방식의 헤더를 사용하세요.Quota, Spike Arrest, Concurrent Rate Limit)를 사용하고, API 리소스를 동적으로 배포하세요.자격 인증 (credentials), 패스워드, 보안 토큰과 같은 민감한 데이터는 반환하지 마세요.200 OK, 400 Bad Request, 401 Unauthorized, 405 Method Not Allowed 등)