GET 메서드를 사용하여 jQuery AJAX 호출을 통해 WCF 서비스를 사용하고 있습니다.WCF의 보안 문제 jQuery AJAX GET 메서드를 통한 호출
POST 메서드 작업을 사용하여 jQuery AJAX를 통해 WCF 호출을 가져올 수 없기 때문에 GET 메서드를 사용하고 있습니다. GET 메서드를 사용하면 WCF 메서드의 URL이 JavaScript를 통해 노출됩니다. 따라서 암호화 또는 다른 방법을 사용하여 프런트 엔드와 백 엔드 간의 통신을 안전하게하는 방법이 있어야합니다.
그러므로 인증 문자열을 작성합니다. 인증 문자열은 프론트 엔드 (JavaScript)에서 암호화되고 백엔드 (WCF)에서 인증 된 고유 데이터 세트로 정의 될 수 있습니다. 인증 문자열에는 Username, Password, WCF Service Name, WCF Method Name 및 Timestamp와 같은 정보가 포함될 수 있습니다.
예 : 고유 한 데이터 조합을 암호화하십시오 (admin_admin_member_getmemberbyid_201305171604). MD5를 사용하여 816dd1f8cd17256fc343948df5ffdf3b가되며 백엔드로 전송 된 데이터 외에도 전송됩니다.
MD5 암호화를 사용하면 프런트 엔드에서 작업에 대한 일부 정보의 조합을 암호화 할 수 있습니다. 백엔드에서 동일한 정보 조합을 암호화하고 이에 대해 유효성을 검사해야합니다. MD5는 암호를 해독 할 수 없기 때문에 데이터를 암호화 할 수 없습니다. 암호화 할 문자열을 작성하는 데 사용 된 조합을 아는 사람은 누구나 MD5 해시를 생성하고 사용할 수 있습니다.
MD5와 달리 공유 키 암호화를 사용하여 데이터를 암호화 할 수 있으므로 백 엔드에서 미리 공유 한 키를 사용하여 암호를 해독하여 원본 데이터를 검색 할 수 있습니다. 그러나 사전 공유 키는 프런트 엔드 소스 코드에서 볼 수 있습니다. 따라서 암호화가 쓸모 없게됩니다.
공개 키 암호화에서 보안은 두 가지 요소를 추측하거나 해킹해야한다는 것입니다. 하나는 데이터 또는 매개 변수 패턴이고 다른 하나는 인증 문자열입니다. 그러나 브라우저에서 디버깅 할 경우 여전히 JavaScript에서 읽을 수 있습니다.
참고 : 네트워크 지연과 같은 지연으로 인해 MD5 문자열이나 미리 공유 된 키에서 타임 스탬프를 사용하는 것이 실제로 실패 할 수 있습니다.
GET을 사용하여 REST를 통해 노출 된 WCF 서비스를 보호 할 수있는 방법이 있습니까?