2013-07-09 3 views
0

POST 또는 GET 요청의 암호/사용자 이름을 외부 서버로 전달하는 것이 얼마나 안전합니까?GET/POST 매개 변수가 암호화되어 있습니까?

나는 PHP/CURL을 사용할 것이고 나는 보안에 관해 두 번째 단서를 가지고있다.

다른 대안도 고려됩니다.

+2

HTTP 또는 HTTPS를 사용하고 있습니까? –

+1

GET 요청은 암호화되지 않으며 GET 매개 변수를 통해 암호를 보내지 않습니다. – c69

+0

@ c69 대안은 무엇입니까? – ProDraz

답변

9

SSL 암호화없이 HTTP를 사용하는 경우 전체 URL, HTTP 요청/응답 헤더 및 POST 요청 및 응답 본문이 포함 된 모든 내용이 암호화되어 전송됩니다.

GET 매개 변수에 암호를 추가하면 주소 표시 줄에 암호가 추가되어 브라우저 기록, 프록시 서버 로그에 저장되고 참조 헤더의 다른 웹 사이트로 전송됩니다. POST 본문 또는 표준 Authorization 헤더에서 암호를 보내면이 명백한 문제는 피할 수 있지만 트래픽을 냄새 맡거나 프록시 할 수있는 관찰자는 여전히 볼 수 있습니다.

Digest Authentication은 암호를 분명히 전송하는 것을 방지하고 재사용이 불가능한 서명 만 외부 관찰자에게 노출시킵니다. 중간자 (man-in-the-middle) 공격에 여전히 취약합니다. HTTP Digest Authentication versus SSL을 참조하십시오.

올바른 해결 방법은 SSL 인증서를 사용하고 HTTPS 만 사용하는 것입니다. 이렇게하면 URL 문자열, HTTP 헤더 및 POST 본문이 모두 암호화되고 브라우저는 제 3자가 중간에 서버를 운영하고 있지 않은지 확인합니다. 이 경우 HTTP 기본 인증이 허용됩니다.

0

그 자체로서 반드시 그렇지는 않습니다. 일반적으로 쿼리와는 별도로 GET을 사용해서는 안되며, 이는 사용자의 브라우저에 저장 될 수 있기 때문입니다. POST는 라이브러리를 사용하여 암호화하기가 비교적 쉽습니다. 자체 암호화를 구현하면 안됩니다.

또한 SSL을 얻으면 도움이됩니다. HTTP가 아닌 HTTPS를 사용하면 훨씬 더 안전합니다.

페이지가 무엇인지에 대한 세부 정보 (읽기 : 언어)를 제공하지 않았으므로 좋은 암호화 라이브러리를 추천 할 수는 없지만 Google에서는이 정보를 찾을 수있을 것입니다.

+1

** GET으로 더 나 빠졌습니다. ** 검색 엔진에서 크롤링합니다. :) – CodeAngry

0

https를 사용하지 않는 경우 기술적으로 안전하지 않습니다. 다른 사용자가 트래픽을 스니핑하는 경우 (예 : 공용 Wi-Fi를 사용하는 경우) 데이터를 볼 수 있습니다. GET을 사용하여 암호를 보내면 안됩니다.

https가 없으면 일반적으로 안전하다고 말할 수 있지만 다른 많은 요인에 따라 다릅니다. 보장은 없습니다.

관련 문제