2017-11-06 25 views
0

일부 사용자/스크립트에 의해 생성 된 가짜 요청을 식별하고 내 서버에 수백만 건의 요청이 넘치도록 REST API를 보호하려면 어떻게해야합니까?가짜 공격으로부터 REST API 보호

일부 사용자가 스크립트 또는 프로그램을 작성하고 내 REST API에 대한 수백만 건의 호출을 생성하는 경우 어떻게하면 내 API가 작동하지 않도록 이러한 서비스에서 서비스를 보호 할 수 있습니까? 한 가지 방법은 captcha를 사용할 수 있지만 captcha는 호출자가 사람 일 때 유용합니다. 발신자가 응용 프로그램 인 경우 captcha를 사용할 수 없습니다. 그러한 시나리오를 처리 할 수있는 프레임 워크가 있습니까?

+0

실제 서비스에 도달하거나 일반적으로 요청을 초과하여 차단하는 요청 수를 제한하는 [누출 버킷] (https://en.wikipedia.org/wiki/Leaky_bucket) 알고리즘을 구현하는 것이 좋습니다. 후자의 경우, IP 당 수신 된 요청의 수를 단순히 카운트하고, threashold가 초과되면 다운 스트림 스터핑의 추가 처리를 방지하는 로컬 쇼트 - 리빙 캐쉬 (즉, 5-10 분)를 이용함으로써 쉽게 달성 될 수있다. –

답변

0

어떤 서비스가 DoS/DDoS 공격이라고 겪고있다. 이것은 현재 웹 서비스에 대한 가장 일반적인 공격 중 하나입니다.

이러한 공격을 완화하는 많은 방법이 있습니다. 은 API 사용자가 작성한 합법적 인 요청을 공격자/공격자가 수행 한 악의적 인 요청으로부터 분리하는 것입니다. 이러한 공격은 일반적으로 자동화되어 요청이 어떤 방식으로 (IP 범위, HTTP 헤더 등) 서로 닮았습니다. 예를 들어 공격이 오는 IP 범위를 확인하고 서비스 방화벽에서 차단하는 것이 매우 간단합니다.

(D) DoS 예방에 대해 논의하는 게시물이 몇 개 있습니다. How do major sites prevent DDoS? 또는 What techniques do advanced firewalls use to protect againt DoS/DDoS?.

타사 서비스/제품을 사용하면 API를 보호하는 데 도움이 될 수 있습니다. 나는 그들 중 누구도 광고하고 싶지 않기 때문에 여기에 언급하고 싶지 않습니다. 검색을해야합니다.

행운을 빈다.

0

각 요청마다 토큰을 전달할 수 있습니다.

이 토큰은 클라이언트와 REST 서비스 모두에서 암호화 알고리즘을 사용하고 비밀 키를 사용하여 토큰을 암호화하고 암호 해독해야합니다.

예 :

Client request : What is the weather of Chennai ? Token : chennai + 123 (Key) 

Server Response : chennai123 : its valid : response 40 !! 

Here key is 123 it should not available in public 
+0

@bikkie가 인증/권한 부여를 말하는 것이 아닙니다. – jannis