나는 작업중인 자바 스크립트 애플리케이션을 안전하게하는 방법을 연구 중이다. 이 애플리케이션은 APE (Ajax Push Engine)를 백엔드로 사용하는 채팅 클라이언트입니다.hmac로 javascript 클라이언트 보안하기
현재 누구나 페이지에 액세스하여 APE 서버에 GET/POST 요청을 할 수 있습니다. 등록 된 사용자에게만 채팅 클라이언트를 제공하고 싶습니다. 요청을 수락하기를 원합니다. PHP에서 사용자 이름/비밀번호 인증을 사용하여 사용자에게 페이지를 제공 할 수 있습니다. 그러나 일단 그들이 페이지를 가지고 있다면, 자바 스크립트를 수정하지 못하게하거나 잘못된 손에 빠지게하는 것은 무엇입니까?
클라이언트/서버 응용 프로그램을 보호하기위한이 방법은 유망한 같습니다 http://abhinavsingh.com/blog/2009/12/how-to-add-content-verification-using-hmac-in-php/
나는 그것이 개인 키를 전송에 의존하지 않기 때문에이 자바 스크립트 클라이언트에 이상적입니다 말한다 다른 소스를 가지고있다. 그러나 이것이 어떻게 될 수 있습니까? 위의 튜토리얼에 따르면 클라이언트는 개인 키를 제공해야합니다. 이 자바 스크립트를 가진 사람은 이제 그 사용자의 개인 키를 가지고 있기 때문에 이것은 매우 안전하지 않습니다. 내가 이해에서 이런 식으로 뭔가를 작동합니다 :
- 사용자 로그를
- PHP는 사용자 이름과 암호를 검증하는 사용자 이름과 암호에 사용자의 개인 키를 조회하고 자바 스크립트에 삽입
- Javascript는 개인 키를 사용하여 서명을 제공하고 모든 APE 요청이있는 공개 키를 제공합니다.
- APE는 계산 된 서명을 수신 된 서명과 비교하여 요청 처리 여부를 결정합니다.
자바 스크립트 응용 프로그램이 개인 키를 알아야 할 경우 어떻게 안전합니까?
도움 주셔서 감사합니다.
안녕하세요 Walderman, 여기에서 게시물을 참조하십시오. 그래서이 기회를 블로그 게시판에서 설명한 작업에 설명해주십시오. 설명 된 메소드는 플로우 검증 메소드에 더 가깝습니다. 즉, 호출 된 ajax/javascript/api가 애플리케이션 제어 흐름을 통해 실제로 의도되었는지 확인하려는 경우입니다. 부스러기 정보가 서버 측에서 누락되었거나 유효하지 않은 경우 (시간 초과 또는 손상으로 인해) 단순히 호출을 무시합니다. 설명 된 방법은 클라이언트 측에서 개인 키를 보내도록 요청하지 않습니다. –