모든 클라이언트 측 기술 (HTML, CSS, JavaScript / AngularJS 등)이 될 웹 응용 프로그램이 있습니다. 이 웹 애플리케이션은 데이터에 액세스하고 수정하기 위해 REST API와 상호 작용할 것입니다. 지금은 REST API가 사용할 인증 시스템 유형을 결정하지 않았습니다.
내 이해에서 모든 유형의 API 인증 시스템 (API 키, OAuth 1/2 등 ...)에는 비밀로 유지 해야하는 특정 데이터가 있어야합니다. 그렇지 않으면 액세스가 손상 될 수 있습니다. API 키의 경우 키 자체는 비밀이 필요합니다. OAuth 2의 경우 클라이언트 비밀 / 액세스 토큰 / 갱신 토큰을 비밀로 유지해야합니다. OAuth 1과 관련된 4 개의 키 중 몇 개는 비밀로 유지해야합니다. OAuth에 대한 경험이 너무 많음 1). 서버 측에 중간 계층이없는 순수한 클라이언트 측 웹 응용 프로그램 에이 비밀 항목을 저장하는 방법이 있는지 생각하려고했습니다.
나는 이것에 대해 생각하고 있었고 그것을 할 곳을 생각할 수 없다. 누구나 소스를 보거나 콘솔을 열고 데이터를 얻을 수 있기 때문에 자바 스크립트로 저장할 수 없습니다. localStorage의 보안 수준과 사용자가 해당 데이터에 액세스 / 수정할 수 있는지 100 % 확신하지 못합니다. 로컬 스토리지가 안전하더라도 데이터를 가져 오는 두 가지 방법은 안전하지 않습니다. 한 가지 방법은 자바 스크립트 소스 코드에 데이터를 저장하는 것입니다.이 코드는 내가 생각할 수있는 가장 안전하지 않은 것입니다. 이제 나머지 API 자체가 나에게 토큰을 제공하는 OAuth 2와 같은 것을 사용하는 경우 해당 토큰은 일반 사용자가 볼 수있는 일반 텍스트로 반환되므로 여전히 안전하지 않습니다 (첫 번째 옵션보다 낫습니다) 컴퓨터가 요청을 볼 수 있습니다.
클라이언트 측을 완전히 실행하는 응용 프로그램이 서버 측에 중간 계층이 없어도 비밀 데이터를 안전하게 저장할 수있는 방법이 있습니까?