2017-12-13 1 views
1

각도 (버전 5) 응용 프로그램은 JWT 토큰 및 인증 가드로 보안됩니다. 이론적으로 사용자는 집계 된 양식 값이 서버로 전송되기 전에 Chromes Developer Tools로 양식 데이터를 조작 할 수 있습니다. 요즘은새로운 우수 사례 클라이언트 측에서이를 방지하기 위해 서버에 https로 전송 된 데이터를 신뢰할 수 있다고 가정 할 수 있습니까?Angular SPA 사용자가 서버에 보내기 전에 양식의 데이터를 조작하지 못하도록하는 것이 가장 좋습니다.

Question은 문제를 해결합니다. 유효성 검사와 함께 서버 측 세션을 권장합니다. 그러나 Restful Architecture에서는 더 이상 세션이 없으므로 서버 측에서 유효성 검사를 사용하여 조작 시도의 모든 조합을 방지 할 수 없습니다. 따라서 편리한 클라이언트 측 솔루션을 찾고 있는데, 개발자 도구로 조작하려면 일반 사용자는 불편합니다. 또한 거기에 100 % 신뢰할 수있는 클라이언트 구현 될 수 없습니다 알아요. 그러나 조작 시도를 복잡하게하는 것은 좋은 트레이드 오프 일 것입니다.

+1

제출할 데이터에 대해 해시를 생성하면 조작 된 데이터에 대한 해시를 만들어야하므로 데이터 조작이 약간 복잡해집니다. – Dormilich

+0

조작 시도의 모든 조합을 방지 할 필요는 없습니다. 주어진 조합이 의미가 있고 사용자가이 작업을 수행 할 수 있는지 확인하십시오. 그럼 해. – Oliver

+0

100 % 신뢰할 수있는 클라이언트는 실제로 달성 할 수 없습니다. – Zlatko

답변

0

HTTP 요청 (양식에 의해 시작된 요청 포함)마다 자동으로 호출되는 HttpClient 인터셉터 (https://angular.io/guide/http 참조)를 만드는 것이 좋습니다. 이러한 인터셉터에서 일부 비즈니스 로직을 구현하여 데이터가 사용자에 의해 조작되지 않도록 할 수 있습니다.

+0

이렇게하면 인터셉터가 실행 된 후에도 요청을 수정할 수 있습니다. – Zlatko

+0

https://stackoverflow.com/users/332419/dormilich의 제안과 함께 Http-Interceptor 접근법을 사용하면 해시를 만드는 것이 분명히 사용자가 조작하기 위해 더 복잡하게 만들 것입니다. 그러므로 Yakov와 Dormilich 덕택입니다. 나는이 패턴을 시도 할 것이다. –

관련 문제