2012-02-08 4 views
0

저는 REST API를 구축하고 인증을 위해 oAuth를 사용하고 있습니다. 내 질문은 데이터가 포함 된 PUT 및 POST 요청의 경우 요청 본문에 대해 필요한 작업을 수행해야합니까? 차이가 있다면 SSL을 사용하고 있습니다.oAuth를 사용하여 REST 요청의 본문을 보호해야합니까?

URL은 oAuth 서명에 의해 확인되지만 신체의 내용은 무엇이든 될 수 있습니다. URL에 올바르게 서명 한 다음 삽입 또는 업데이트 할 수있는 올바른 자격 증명을 제공했기 때문에 문제인지 여부는 확실하지 않습니다. 나는 재생 공격을 막기 위해 nonce를 사용하고 있지만 요청 본문을 어떻게 처리하는지 오해하여 보안 문제가 발생하지 않도록하고 싶습니다.

의견을 보내 주셔서 감사합니다.

+0

실제로 요청하는 것처럼 들리 겠지만 요청시 본문에 디지털 서명해야하는지 여부가 들리므로 서버가 전송 중 악의적 인 공격자에 의해 수정되었는지 여부를 확인할 수 있습니다. 그게 옳은가? 나는 그 일을하는 REST API를 다루지 않았다. 일반적으로 연결이 보안되고 요청이 적절하게 인증되면, 좋다. 물론 기본적인 버퍼 오버플로, 주입 공격 등을 피하면서 올바른 데이터 유효성 검사를 수행하고 있다고 가정하십시오. – aalpern

+0

고마워요, 기본적으로 생각한 것입니다 만 중간자 (man-in-the-middle) 취약점을 만드는 것처럼 보입니다. 페이로드를 변경하는 한 정말 가능성은 희박하지만, 서명하는 것이 표준인지 확실하지 않았습니다. 그렇지 않은 것 같은데 ..? – Jason

답변

1

일부 OAuth 라이브러리를 통해 답변을 찾았습니다. 그것은 공식적으로 사양의 일부가 아니지만 일부 서비스 및 라이브러리는 "xoauth_body_signature"및 "xoauth_body_signature_method"를 요청 헤더에 사용하여 본문 내용의 서명을 보냅니다.

xoauth_body_signature로 검색하여 문제를 구현하고 토론 할 수 있습니다. 그것은 많은 사람들이 그것을하고있는 것처럼 보이지 않습니다.

관련 문제