2011-08-23 3 views
0

C#으로 데스크톱 소프트웨어를 만들고 있습니다. 이 소프트웨어는 정기적으로 요청에 응답하는 PHP 스크립트가있는 내 사이트에 Http 요청을 보냅니다. 내 사이트에서, 나는 그 요청이 자신의 프로그램에서 온 사용자가 아니라 소프트웨어로부터 왔는지 확인해야한다. 사용자가 POST 문자열을 복제하고 내 서버에 요청을 시작할 수 있음을 의미합니다. Microsoft 응용 프로그램처럼 요청서와 함께 인증서를 보내야 할 것입니다. 나는 그것을 찾았지만 아무 것도 발견하지 못했습니다. 인증 방법을 알려주십시오.데스크톱 응용 프로그램의 HTTP 요청을 웹 사이트에 인증합니다.

답변

0

헤더에서 요청에 추가 할 암호화 서명을 작성해야합니다. 내가 말하고자하는 것은 URL, 폼 값, 날짜/시간과 같은 요청의 관련 측면을 취한 다음 애플리케이션이 자신의 암호화 인증서를 소유하고 있다는 증거로 제공하는 암호화 서명을 생성한다는 것입니다. 다음은 간단한 예제이다

Cryptographic Signatures

내가 말했듯이,이 서명을 생성하고 요청에 HTTP 헤더로 추가합니다. 그런 다음 서버 소프트웨어가 서명을 확인해야합니다. 서명을 검증 할 수있는 경우 요청자가 인증서를 보유하고 요청이 소프트웨어에서 발생했다고 합리적으로 확신 할 수 있습니다.

정통한 사용자는 여전히 코드를 디 컴파일하여 인증서를 가져 와서 자신의 요청을 구성 할 수 있지만 적어도 어려워졌습니다. 보호를 위해 할 수있는 최선의 방법은 인증서를 정기적으로 만료하는 것이지만 고객에게 새 인증서를 가져와야합니다.

관련 문제