2013-01-22 3 views
0

SSL EV 인증서로 보안 웹 서비스가 있습니다. 그 위치는 다음과 같습니다 : https://webservice.justawebservice.com/webservice/. 사용자는이 웹 서비스에 메시지를 보낼 수 있습니다.웹 서비스 위치 보안 방법

악의적 인 사용자가이 URL을 소유하게되면 해당 사용자는 WSDL을 표시하고 서비스 위치를 웹에 올릴 수 있습니다. 하지만 가장 중요한 것은 메시지를 보낼 수 있다는 것입니다. 웹 서비스에는 일종의 인증이 있지만 메시지가 전송 될 때만 발생합니다 (메시지에 사용자 이름과 비밀번호가 포함되어 있음). 악의적 인 사용자가 웹 서비스에 많은 양의 메시지가 넘쳐서 오프라인 상태가 될 수 있습니다.

나는이 지역을 안전하게하고 싶다. 그래서 그 사람이 링크로 간다면 그는 어떤 종류의 인증을 요구 받는다.

가장 좋은 방법은 무엇입니까? 어떤 도움을 주시면 더 좋구요

(그것이 가능하다면),

감사합니다!

답변

2

당신의 목적이 도스 유형의 공격으로 '요청으로 범람하는 것'을 막는 것이라면 적절하게 인증 된 클라이언트조차도 API 사용법을 이해하지 못하거나 홍수를 일으킬 수 있기 때문에 적절한 방법이 아닙니다. 코드 등에서 버그가 발생할 수 있습니다.

올바른 방법 IMHO는 특정 사용자 또는 IP로부터 들어오는 요청의 수를 살펴볼 수있는 일종의 '회로 차단기'패턴을 코드에서 개발할 것입니다 (아마도 WS 차단기로). 주소 또는 전체 또는 모든 위) 및 호출자에게 오류를 반환하여 바로 가기 호출 실행, 따라서 시스템의 리소스를 많이 소비하지 않습니다.

이것은 좋은 첫 번째 단계 일 수 있지만 DOS 공격에 대한 완전한 보증은 아닙니다. 서비스가 요청을 받아들이고 해석하는 데 리소스를 여전히 소비하므로이 단계가 적절할 것입니다. 다음 단계는 가능하면 가장 낮은 수준에서 그러한 고객을 차단하려고하는 것입니다. 방화벽에서 TCP 패킷을 삭제합니다.이 작업을 단순화하는 방화벽 패키지는 거의 없습니다. ddos와 AFP는 수축 등등.

+0

입력 해 주셔서 감사합니다. 나는이 아이디어를 토론 할 것이다. – Jef

+0

이 웹 서비스의 URL을 사용자 이름과 암호로 보호 할 수 있는지 알고 있습니까? 악의적 인 사람이이 URL을 요청하면 인증을 요청 받게됩니다. – Jef

+1

WS 메소드에서 HTTP 헤더에 액세스하여 거기에서 사용자 이름/비밀번호를 가져올 수있는 간단한 HTTP 인증 메커니즘을 흉내 내고 싶다면 webServiceContext.getMessageContext(). get ("Username") 등 HTTP 401 (Not Authorized) 인증 실패시. WS 인터셉터에서 더 잘 수행 할 수 있습니다. – maximdim

1

soley 사람/사용자는 문제가되지 않지만 서비스를 넘치게하는 봇을 만들 수 있습니다.

옵션 : 방화벽 수준에

  • , 홍수 패키지 away을 유지한다.
  • 클라이언트 인증을 client certificate과 함께 사용하십시오. 대부분의 로봇은 클라이언트 인증이 필요할 때 포기합니다.
+0

입력 해 주셔서 감사합니다. 이제는 이러한 링크를 읽고, 나는 일찍이 내 직장 환경에서 클라이언트 인증서라는 용어를 들었습니다 (저는 인턴입니다). 튜토리얼은 유망 해 보인다. 다시 한 번 감사드립니다! – Jef

+0

이 웹 서비스의 URL을 사용자 이름과 암호로 보호 할 수 있는지 알고 있습니까? 악의적 인 사람이이 URL을 요청하면 인증을 요청 받게됩니다. – Jef