Bob은 무언가를 달성하기 위해 웹 애플리케이션을 사용합니다. 과:
- 그의 브라우저는 다이어트 중이므로 쿠키를 지원하지 않습니다 .
- 웹 애플리케이션은 인기있는 애플리케이션으로, 주어진 순간에 많은 사용자를 처리합니다 . 확장 성 이 있어야 합니다. 세션을 유지 하면 동시 연결 수에 제한이 적용되고 물론 무시할 수없는 성능 저하 가 발생하는 한 세션이없는 시스템을 사용하는 것이 좋습니다. :)
몇 가지 중요한 참고 사항 :
- 우리는 전송 보안을 가지고 있습니다 ( HTTPS 와 가장 친한 친구).
- 커튼 뒤에서 웹 애플리케이션 은 현재 사용자를 대신하여 외부 서비스에 많은 작업을 위임합니다 (이러한 시스템은 Bob을 사용자 중 하나로 인식 함). 즉, 사용자 에게 Bob의 자격 증명을 전달해야합니다 .
이제 Bob을 어떻게 인증합니까 (각 요청마다)? 그런 것을 구현하는 합리적인 방법은 무엇입니까?
- 재생 테니스를 통해 자격 증명을 사용하여 HTML 양식 숨겨진 필드 ... 볼 자격 증명 (포함 사용자 이름 및 암호 )와 두 라켓은 브라우저와 각각의 웹 응용 프로그램입니다. 즉, 쿠키 대신 양식 필드를 통해 데이터를주고받을 수 있습니다. 각 웹 요청에서 브라우저는 자격 증명을 게시합니다. 그래도의 경우 단일 페이지 응용 프로그램 이 재생처럼 보일 수 스쿼시 고무 벽에 대신 재생 테니스 는 AS, 웹 양식 의 자격 증명을 포함는 전체 수명 살아 유지 될 수있는 웹 페이지를 (그리고 서버는 자격 증명을 다시 제공하지 않도록 구성됩니다).
- 페이지 컨텍스트에 사용자 이름 및 비밀번호 저장-JavaScript 변수 등. 여기에는 단일 페이지가 필요합니다. IMHO.
- 암호화 된 토큰 기반 인증. 이 경우 로그인 조치로 인해 암호화 된 보안 토큰 (사용자 이름 + 비밀번호 + 기타)이 생성됩니다. 이 토큰은 클라이언트에게 다시 제공되며 다가오는 요청에는 토큰이 수반됩니다. 이게 말이 돼? 이미 HTTPS가 있습니다 ...
- 기타 ...
- 마지막 수단 :이 작업을 수행하지 말고 세션에 자격 증명을 저장하십시오! 세션이 좋습니다. 쿠키 유무.
이전에 설명한 아이디어와 관련하여 웹 / 보안 문제가 떠오 릅니까? 예를 들면
- 타임 아웃 - 자격 증명과 함께 타임 스탬프를 유지할 수 있습니다 (타임 스탬프 = Bob이 자격 증명을 입력 한 시간). 예를 들어 NOW-timestamp> threshold 이면 요청을 거부 할 수 있습니다.
- 교차 사이트 스크립팅 보호-어떤 식 으로든 다르면 안됩니까?
이 글을 읽어 주셔서 감사합니다 :)