보안상의 이유로 특정 웹 사이트를 운영하는 웹 클라이언트 만 웹 서비스에 액세스 할 수 있도록 보증해야합니다. 나는 도메인 요청에 대해서만 검증을하고 있지만 좀 더 강력하게 할 필요가 있습니다. 나는 내 보안 수표를 깨기가 너무 쉽다고 생각한다.웹 서비스 호출자가 내 웹 사이트인지 확인하는 방법은 무엇입니까?
답변
로그인 토큰 (나는 적어도 SHA-1 HMAC를 사용하는 것이 좋습니다). This site은 ASP.NET 용 샘플 코드를 제공합니다. .NET을 사용하지 않으므로이 코드를 확인할 수 없습니다.
HMAC 서명과 함께 토큰을 클라이언트에 제공하십시오. 클라이언트가 요청할 때마다 웹 서비스로 다시 전달하게합니다.
웹 서비스에서 HMAC 서명을 확인하기 만하면됩니다.
토큰이 변경되지 않으면 일부 악의적 인 사용자가 클라이언트 코드에서이를 관찰하고 복사 할 수 있습니다. 토큰을 타임 스탬프로 만들고 특정 기간 내에 토큰이 유효한 경우에만 허용하거나 토큰을 어떤 방법으로 특정 사용자에게 묶음으로써이를 피할 수 있습니다.
보안 담당자로서 리퍼러가 충분하지 않습니다. 프록시에 의해 제거되거나 악의적 인 클라이언트에 의해 위조 될 수 있습니다.
으로 당신이 HTTP 리퍼러를 확인할 수 있습니다 언급하지만, 검증의 방법은 탬퍼 데이터와 같은 도구를 사용하여 스푸핑 무지하게 간단하다, 더 나은 옵션은 쿠키 데이터를 사용하여 세션을 관리하는 것입니다 https://addons.mozilla.org/en-US/firefox/addon/966
을 거부 할 것을 요청 돈 유효한 세션 토큰이 없습니다.
역방향 프록시로 보호 할 수 있습니다. 특정 IP 주소의 트래픽 만 허용합니다.
어쩌면 특정 디지털 인증서가 있는지 확인할 수 있습니다. 정확히 어떻게 할 지 모르겠지만 가능하면 확실합니다.
양식 인증으로 웹 서비스를 보호 할 수 있습니까? 단지 알려진 곳만 알려주시겠습니까?
@powtac도 보안 전문가는 아니지만 올바른 아이디어가 있습니다. 위험한 수준에 따라 달라질 수 있습니다.
진정한 보안 솔루션이 필요한 경우 보안 전문가와상의하고 싶을 수 있습니다. 여기서 좋은 응답을 얻지 못한다고 가정하십시오. 일을 만드는 것은 하나의 일입니다 - 나쁜 사람을 밖으로 지키는 것은 다른 문제입니다 :)
나는 웹 브라우저에서 서비스를 전혀 호출하지 않을 것입니다.
웹 사이트 프록시가 웹 서비스에 대한 모든 요청을 할 수 있습니다. 그런 다음 웹 사이트는 웹 서비스에 직접 인증을 제공합니다 (SSL, 인증서, 공유 비밀 또는 다른 구성표의 기본 인증).
이 방법이 실제 상황에 맞는지는 확실하지 않지만 보안이 강화됩니다. 그 이후로 HTML을 해킹하여 웹 서비스에 대한 악의적 인 요청을 만드는 능력을 제한합니다. 예 : 보안 토큰보기, 웹 서비스 엔드 포인트 및 데이터 구조보기 등이 있습니다. 보안 체인의 취약한 링크는 웹 사이트입니다.사용자가 제대로 인증 및 권한 부여를하지 않으면 보안 모델이 고장납니다.
어떤 종류의 웹 서비스인지는 모르지만 실제로 콘텐츠를 클라이언트로 푸시하거나 (실제로는 실용적이지 않음), 정말로 확실하게 알고 싶다면 클라이언트마다 패스 키를 적극적으로 밀어 넣으십시오. x 시간/일/주? 패스 키는 각 요청에 대한 인증으로 사용됩니다.
ASP.NET을 사용하기 때문에 기본 제공되는 양식 인증이 가장 쉬운 방법입니다. 웹 서비스와 동일한 도메인에 설정된 쿠키에 의존하기 때문에 동일한 도메인의 요청 만 성공적으로 인증된다는 측면에서의 이점이 있습니다.
- 1. 내 웹 서비스
- 2. 웹 서비스 요청 중에 xml이 어떻게 전송되는지 확인하는 방법은 무엇입니까?
- 3. C# 웹 서비스 - 내 웹 사이트에 배포
- 4. 웹 서비스
- 5. 호출 웹 서비스 방법은
- 6. 웹 사이트에서 이미지를 찾았는지 확인하는 방법은 무엇입니까?
- 7. 안정적인 웹 서비스 대 다른 웹 서비스
- 8. 웹 페이지의 실제 크기를 확인하는 방법은 무엇입니까?
- 9. 앱에서 웹 사이트의 업데이트를 확인하는 방법은 무엇입니까?
- 10. 웹 페이지가 스크롤되었는지 확인하는 방법은 무엇입니까?
- 11. 웹 사이트의 소유권을 확인하는 방법은 무엇입니까?
- 12. 웹 서버에서 실행 중인지 확인하는 방법은 무엇입니까?
- 13. 웹 서비스 구성이란 무엇입니까?
- 14. Android 마켓을위한 웹 서비스
- 15. 리디렉션을 따라 웹 서비스 요청을하는 방법은 무엇입니까?
- 16. 웹 서비스, 웹 응용 프로그램
- 17. 웹 서비스 보안
- 18. ASP.NET에서 웹 서비스 호출자의 포트 번호를 찾는 방법은 무엇입니까?
- 19. 웹 서비스 API 사용 방법은 무엇입니까?
- 20. Glassfish로 웹 서비스 호출을 로그하는 방법은 무엇입니까?
- 21. Flash/Flex로 작성된 웹 응용 프로그램 상태를 확인하는 방법은 무엇입니까?
- 22. .NET 웹 서비스 보안
- 23. () 웹 서비스
- 24. "웹 서비스"와 "웹 서비스"의 차이점은 무엇입니까?
- 25. IIS가없는 웹 서비스 테스트
- 26. iPhone의 웹 서비스
- 27. Java + Django 웹 서비스?
- 28. 웹 서비스 -
- 29. 파이썬 클라이언트가있는 웹 서비스
- 30. WCF 웹 서비스 및 Java 웹 서비스
해킹 된 알고리즘이므로 SHA-1을 사용하지 않는 것이 좋습니다. MD5도 마찬가지입니다. – jrista
"해킹 된 알고리즘"? SHA-1에는 몇 가지 약점이 있습니다 (현재는 대량의 컴퓨팅 성능이 필요한 충돌 공격). HMAC 작동 방식으로 인해 충돌 공격은 HMAC 자체의 보안을 손상시키지 않습니다. 즉, 사용자 시스템에 지원이 제공된다면 SHA-256 또는 SHA-512 (SHA-2의 변형)를 권장하는 것이 좋습니다. (HMAC 또는 암호 해시를 혼자서 구현해서는 안되며 오류가 너무 많습니다.) – inklesspen
클라이언트에서 서버로 제공된 토큰이 어떻게 보호를 제공하는지 이해할 수 없습니다. 내가 악의적 인 클라이언트를 가지고 있다면, 나는 클라이언트를 가장하고, 서버에 토큰을 요청하고 그것을 재생할 것입니다. – TMC