RESTful 웹 서비스-보안
RESTful 웹 서비스가 HTTP URL 경로와 함께 작동하므로 웹 사이트가 보안되는 것과 동일한 방식으로 RESTful 웹 서비스를 보호하는 것이 매우 중요합니다.
다음은 RESTful 웹 서비스를 설계하는 동안 준수해야 할 모범 사례입니다.
Validation− 서버의 모든 입력을 확인합니다. SQL 또는 NoSQL 주입 공격으로부터 서버를 보호하십시오.
Session Based Authentication − 세션 기반 인증을 사용하여 웹 서비스 방법에 대한 요청이있을 때마다 사용자를 인증합니다.
No Sensitive Data in the URL − URL에 사용자 이름, 암호 또는 세션 토큰을 사용하지 마십시오. 이러한 값은 POST 방법을 통해 웹 서비스에 전달되어야합니다.
Restriction on Method Execution− GET, POST 및 DELETE 메서드와 같은 메서드의 제한된 사용을 허용합니다. GET 메소드는 데이터를 삭제할 수 없어야합니다.
Validate Malformed XML/JSON − 웹 서비스 메소드에 전달 된 올바른 형식의 입력을 확인합니다.
Throw generic Error Messages − 웹 서비스 방법은 403과 같은 HTTP 오류 메시지를 사용하여 접근 금지 등을 표시해야합니다.
HTTP 코드
Sr. 아니. | HTTP 코드 및 설명 |
---|---|
1 |
200 OK − 성공을 보여줍니다. |
2 |
201 CREATED− POST 또는 PUT 요청을 사용하여 리소스가 성공적으로 생성 된 경우. 위치 헤더를 사용하여 새로 생성 된 리소스에 대한 링크를 반환합니다. |
삼 |
204 NO CONTENT− 응답 본문이 비어있는 경우. 예를 들어, DELETE 요청입니다. |
4 |
304 NOT MODIFIED− 조건부 GET 요청의 경우 네트워크 대역폭 사용량을 줄이는 데 사용됩니다. 응답 본문은 비어 있어야합니다. 헤더에는 날짜, 위치 등이 있어야합니다. |
5 |
400 BAD REQUEST− 유효하지 않은 입력이 제공되었음을 나타냅니다. 예 : 유효성 검사 오류, 누락 된 데이터. |
6 |
401 UNAUTHORIZED − 사용자가 유효하지 않거나 잘못된 인증 토큰을 사용하고 있음을 나타냅니다. |
7 |
403 FORBIDDEN− 사용자가 사용중인 방법에 액세스 할 수 없음을 나타냅니다. 예를 들어, 관리자 권한없이 액세스를 삭제합니다. |
8 |
404 NOT FOUND − 방법을 사용할 수 없음을 나타냅니다. |
9 |
409 CONFLICT− 메서드를 실행하는 동안 충돌 상황을 나타냅니다. 예를 들어, 중복 항목을 추가합니다. |
10 |
500 INTERNAL SERVER ERROR − 메서드를 실행하는 동안 서버에서 예외가 발생했음을 나타냅니다. |