답변:
그렇습니다. 그러나 민감한 데이터에 GET을 사용하는 것은 여러 가지 이유로 나쁜 생각 입니다.
따라서 Querystring은 보안이 유지되지만 querystring을 통해 중요한 데이터를 전송하지 않는 것이 좋습니다.
[1] RFC는 브라우저가 HTTPS에서 HTTP로 리퍼러를 보내면 안된다고 명시하고 있습니다. 그러나 이것이 나쁜 타사 브라우저 툴바 또는 HTTPS 사이트의 외부 이미지 / 플래시가 누출되지 않는다는 것을 의미하지는 않습니다.
History caches in browsersir에 대한 문제를 설명 하거나 ir에 대한 참조를 추가 할 수 있습니까?
브라우저가 먼저 보안 연결을 설정 한 다음 GET 매개 변수를 포함하는 요청을 보내므로 "네트워크 패킷 감지"관점에서 GET 요청은 안전합니다. 그러나 GET url은 사용자 브라우저 기록 / 자동 완성에 저장됩니다. 예를 들어 비밀번호 데이터를 저장하기에는 적합하지 않습니다. 물론 브라우저에서 서비스에 액세스 할 수있는 더 넓은 "웹 서비스"정의를 취하는 경우에만 적용됩니다. 사용자 지정 응용 프로그램에서만 액세스하면 문제가되지 않습니다.
따라서 최소한 비밀번호 대화 상자에 게시를 사용하는 것이 좋습니다. 또한 littlegeek이 링크에서 지적한 것처럼 GET URL은 서버 로그에 기록 될 가능성이 높습니다.
예 , 검색어 문자열이 암호화됩니다.
그 이유는 쿼리 문자열이 응용 프로그램 계층 프로토콜 인 HTTP 프로토콜의 일부이고, 보안 (SSL / TLS) 부분은 전송 계층에서 오기 때문입니다. SSL 연결이 먼저 설정된 다음 쿼리 매개 변수 (HTTP 프로토콜에 속함)가 서버로 전송됩니다.
SSL 연결을 설정할 때 클라이언트는 다음 단계를 순서대로 수행합니다. example.com 이라는 사이트에 로그인하려고하고 쿼리 매개 변수를 사용하여 자격 증명을 보내 려고한다고 가정합니다 . 완전한 URL은 다음과 같습니다.
https://example.com/login?username=alice&password=12345)
example.com을 IP 주소 (124.21.12.31)로 확인합니다. 해당 정보를 쿼리 할 때 도메인 특정 정보 만 사용됩니다. 즉example.com 사용됩니다. 사용됩니다.124.21.12.31에 연결을 시도하고 포트 443 (기본 HTTP 포트 80이 아닌 SSL 서비스 포트)에 연결을 시도합니다.example.com는 인증서를 클라이언트로 보냅니다.따라서 민감한 데이터가 노출되지 않습니다. 그러나이 방법을 사용하여 HTTPS 세션을 통해 자격 증명을 보내는 것이 가장 좋은 방법은 아닙니다. 다른 접근 방식으로 가야합니다.
(e.g http://example.com/login?username=alice&password=12345).
SSL은 먼저 호스트에 연결되므로 호스트 이름과 포트 번호가 일반 텍스트로 전송됩니다. 호스트가 응답하고 챌린지가 성공하면 클라이언트는 HTTP 요청을 실제 URL (예 : 세 번째 슬래시 뒤)로 암호화하여 서버로 보냅니다.
이 보안을 해제하는 방법에는 여러 가지가 있습니다.
"중간자"역할을하도록 프록시를 구성 할 수 있습니다. 기본적으로 브라우저는 실제 서버에 대한 연결 요청을 프록시에 보냅니다. 프록시가 이런 식으로 구성되면 SSL을 통해 실제 서버에 연결되지만 브라우저는 여전히 프록시와 통신합니다. 따라서 공격자가 프록시에 액세스 할 수 있으면 프록시를 통해 흐르는 모든 데이터를 일반 텍스트로 볼 수 있습니다.
귀하의 요청은 브라우저 기록에도 표시됩니다. 사용자가 사이트를 즐겨 찾기하려는 유혹을받을 수 있습니다. 일부 사용자에게는 책갈피 동기화 도구가 설치되어 있으므로 비밀번호가 deli.ci.us 또는 다른 위치에있을 수 있습니다.
마지막으로 누군가가 컴퓨터를 해킹하고 키보드 로거 또는 화면 스크레이퍼를 설치했을 수 있습니다 (많은 트로이 목마 바이러스가 있습니다). 암호는 화면에서 직접 볼 수 있기 때문에 (암호 대화 상자에서 "*"가 아닌) 또 다른 보안 허점입니다.
결론 : 보안과 관련하여 항상 구타에 의존하십시오. 당신이 알지 못하고 생각하지 않으며 목이 부러 질 수있는 것이 너무 많습니다.
Slough의 응답 에서 [...] HTTP 참조 자 유출 (대상 페이지의 외부 이미지가 비밀번호를 유출 할 수 있음) 에 대한 진술에 동의하지 않습니다 .
HTTP 1.1 RFC는 다음과 같이 명시 적으로 설명합니다 .
참조 페이지가 보안 프로토콜로 전송 된 경우 클라이언트는 (비보안) HTTP 요청에 Referer 헤더 필드를 포함하지 않아야합니다.
어쨌든 서버 로그 및 브라우저 기록은 중요한 데이터를 쿼리 문자열에 넣지 않는 충분한 이유가됩니다.
소금을 추가하여 MD5 해시 매개 변수로 비밀번호를 보낼 수 있습니다. 인증을 위해 서버 측에서 비교하십시오.