2012-11-06 2 views

답변

2

API 설명서에 HTTPS를 전달한다고 나와 있습니다. 사실 HTTP 헤더의 GET 또는 POST 여부에 관계없이 모든 정보는 SSL 전송의 일부이므로 URL 매개 변수도 암호화되므로 GET 매개 변수가 암호화됩니다. 보장 할 수없는 것은 고객이 보유하게 될 것입니다. 또는 서버가 호스트 이름에 대한 DNS 조회를 수행했을 때와 같은 일부 정보가 노출 된 다른 프로세스가있는 경우 또 다른 예는 브라우저가 있고 https URL을 포함하여 입력 한 모든 기록을 유지하면 보안이 손상 될 수 있습니다. 다음은

는 HTTP 헤더하는 TCP 연결을 시작하고 다음과 같이 뭔가를 보내드립니다 클라이언트 :

GET /tutorials/other/top-20-mysql-best-practices/ HTTP/1.1 
Host: net.tutsplus.com 
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729) 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-us,en;q=0.5 
Accept-Encoding: gzip,deflate 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Keep-Alive: 300 
Connection: keep-alive 
Cookie: PHPSESSID=r2t5uvjq435r4q7ib3vtdjq120 
Pragma: no-cache 
Cache-Control: no-cache 

SSL은 모든 정보가 다시 전송됩니다 아무것도와 함께 암호화되어 달라집니다. 나는이 API를 사용하는 것이 안전하다고 말하고 싶습니다. POST와 GET의 유일한 차이점은 POST에서 매개 변수가 본문에있는 반면 GET에서는 매개 변수가 헤더에있는 것입니다. 두 경우 모두 모든 민감한 정보가 암호화됩니다.

1

나는 안전하지 않은 것으로 원칙적으로 동의합니다. URL은 로그와 같이 일반 텍스트 (HTTPS 이상)의 모든 종류의 재미있는 장소에서 끝납니다. 어느 곳에서나 일반 텍스트로 사용하는 것을 피하는 것이 가장 좋습니다.

대체 방법이 있는지 API 작성자와상의해야합니다. 예를 들어 POST와 GET을 모두 지원하는 메소드가있는 것처럼 보입니다.이 경우 HTTPS 연결을 통해 상대적으로 안전한 비밀번호 보안 정보를 POST 할 수 있습니다.

관련 문제