문제

POST는 로그인 자격 증명을 보낼 만큼 충분히 안전합니까?

아니면 SSL 연결이 ~ 해야 하다?

도움이 되었습니까?

해결책

SSL은 필수입니다. 포스트는 암호화되지 않은 것을 보내기 때문에 얻는 것보다 더 안전하지 않습니다. SSL은 전체 HTTP 통신을 다루고 클라이언트와 서버간에 HTTP 데이터 전송을 암호화합니다.

다른 팁

<shameless plug>나는있다 블로그 게시물 해당 HTTP 요청의 모습과 GET 요청이 게시물 요청과 비교되는 방법에 대해 자세히 설명합니다. 간결하게하기 위해서는 다음과 같습니다.

GET /?page=123 HTTP/1.1 CRLF
Host: jasonmbaker.wordpress.com CRLF
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1 CRLF
Connection: close CRLF

그리고 게시 :

POST / HTTP/1.1 CRLF
Host: jasonmbaker.wordpress.com CRLF
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1 CRLF
Connection: close CRLF
CRLF
page=123

(CRLF는 단지 Newline입니다)

보시다시피, 요청이 형성되는 방법의 관점에서 유일한 차이점은 게시물 요청이 단어 게시물을 사용하고 양식 데이터가 요청 본문과 URI에 전송된다는 것입니다. 따라서 HTTP 게시물을 사용하는 것은 모호한 보안입니다. 데이터를 보호하려면 SSL을 사용해야합니다.

* 거기에 주목하십시오 ~이다 다른 차이점.

그것은 당신의 상황에 달려 있습니다. 자격 증명의 가로 채기가 누군가에게 얼마나 많은 비용이들됩니까?

소프트웨어 Q+A 사이트에 로그인 한 경우 온라인 뱅킹 사이트이거나 신용 카드 데이터를 저장하는 경우 SSL이 필요하지 않을 수 있습니다.
이것은 기술적 결정이 아닌 사업입니다.

HTTP POST는 암호화되지 않으므로 네트워크 스니퍼, 프록시에 의해 가로채거나 사용자 정의된 로깅 수준을 사용하여 서버 로그에 유출될 수 있습니다.예, POST 데이터가 GET보다 낫기 때문에 POST가 GET보다 낫습니다. 평소에는 프록시나 서버에 의해 기록되지만 그렇지 않습니다. 안전한.비밀번호나 기타 기밀 데이터를 보호하려면 SSL을 사용하거나 POST 전에 데이터를 암호화해야 합니다.또 다른 옵션은 브라우저에서 다이제스트 인증을 사용하는 것입니다(RFC 2617 참조).(자체 제작) 암호화만으로는 재생 공격을 방지하는 데 충분하지 않다는 점을 기억하세요. 임시값과 기타 데이터(예:영역)을 암호화하기 전에(다이제스트 인증에서 수행되는 방법은 RFC 2617 참조)

SSL은 필수입니다 :)

HTTP 게시물은 일반 텍스트로 전송됩니다. 예를 들어, Fiddler를 다운로드하여 사용하여 HTTP 트래픽을 시청하십시오. 거기에 전체 게시물을 쉽게 볼 수 있습니다 (또는 Wireshark와 같은 네트워크 트래픽 모니터를 통해)

안전하지 않습니다. 게시물은 얻는 것처럼 쉽게 스니핑 할 수 있습니다.

아니요 ... 게시물은 충분히 안전하지 않습니다. SSL은 필수입니다.

게시는 쿼리 문자열의 매개 변수를 효과적으로 숨 깁니다. 브라우저와 종점 사이의 트래픽을보고있는 사람은 이러한 매개 변수를 여전히 선택할 수 있습니다.

가장 안전한 방법은 자격 증명을 전혀 보내지 않는 것입니다.

사용하는 경우 소화 인증, 그런 다음 SSL입니다 아니다 필수.

(NB : HTTP에 대한 Digest 인증이 HTTPS를 사용하는 것보다 항상 더 안전하다는 것을 암시하지는 않습니다).

게시물은 일반 텍스트입니다.

안전한 연결은 필수입니다.

그렇기 때문에 보안 연결이라고합니다.

아니요, SSL을 사용하세요.

POST를 사용하면 SSL을 사용하지 않는 한 값은 여전히 ​​일반 텍스트로 제출됩니다.

HTTP GET와 HTTP 게시물의 유일한 차이점은 데이터가 인코딩되는 방식입니다. 두 경우 모두 일반 텍스트로 전송됩니다.

로그인 자격 증명에 대한 모든 종류의 보안을 제공하려면 HTTPS가 필수입니다.

HTTP를 제공하기 위해서는 비싼 인증서가 필요하지 않습니다. 약 $ 20USD에 대해 매우 기본적인 인증서를 발행하는 많은 제공 업체가 있습니다. 더 비싼 것들에는 전자 상거래 사이트에 대한 관심이있는 신원 확인이 포함됩니다.

모든 데이터가 일반 텍스트로 "이동"하기 때문에 게시물 요청만으로는 안전하지 않습니다.

SSL이 필요합니다.

암호화되지 않은 HTTP 연결을 사용하는 경우 게시물 데이터가 일반 텍스트로 전송됩니다. 이것이 충분히 안전한 경우 사용량에 따라 다릅니다 (힌트 : 그렇지 않습니다).

서버, 클라이언트 머신 및 그 사이의 모든 기계가 제어되고 완전히 신뢰할 수있는 네트워크의 일부인 경우 괜찮을 수 있습니다.

이러한 매우 제한된 상황 (그리고 때로는 심지어 그 안에서도) 외에는 일반 텍스트 인증이 문제를 요구하고 있습니다.

이 위대한 기사를 참조하십시오 :

악의적 인 게시물 요청으로부터 보호하십시오

https://perishablepress.com/protect-post-requests/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top