필자는 입력을 받고 개발자가 API처럼 사용할 출력을 전달하는 알고리즘을 가지고 있습니다. 서비스 거부 공격과 과도한 과용을 방지하기 위해 속도 제한이나 보호를 원합니다. 어떤 옵션이 있습니까? 계정과 API 키를 제공합니까? 어떻게 일반적으로 효과가 있습니까? 그리고이 시나리오에서 가능한 다른 아이디어는 무엇입니까?공용 API의 속도를 어떻게 제한합니까?
답변
계정 및 API 키는 좋은 아이디어처럼 들리지만, 의도 한 개발자가 아닌 다른 사용자가 API에 액세스 할 수 없으면 계정 키와 API 키가 좋은 생각처럼 들립니다.
특정 API가 마지막으로 액세스되었을 때 간단한 데이터베이스 테이블을 로깅하고 특정 시간 프레임에서 너무 많이 액세스되는 경우 재사용을 거부하는 것은 매우 간단해야합니다. 가능하면 다음 번에 API를 출력에 다시 사용할 수 있도록 반환하십시오. 따라서 개발자는 시행 착오적 인 방법을 사용하지 않고 그에 따라 스로틀을 조절할 수 있습니다.
동일한 입력을 반복해서 사용하거나 완전히 무작위로 입력해야 할 것으로 예상됩니까? API를 다시 사용할 준비가 될 때까지 출력을 캐싱하고 개발자에게만 캐시를 제공하는 것은 어떻습니까? 이 방법은 계정과 키에 훨씬 덜 의존적입니다.
정확성을 희생하면서 약간 덜 복잡한 다른 옵션은 IP 주소를 사용합니다. 분명히 이것은 극복하기가 더 쉽지만, IP 주소가 무엇인지 모르는 일반 사용자에게는 효과적입니다. 또한 쉽게 설정할 수 있습니다. 그것은 모든 응용 프로그램의 복잡성과 당신은 확실히 갈 수있는 좋은 방법이 될 수
API 키에서 그것을 할 수있어 시간의 양에 따라 달라집니다
도 openAuth (http://oauth.net)이 만약 당신이 시나리오 곳 최종 사용자는 제 3자가 만든 앱을 통해 서비스에 액세스하게됩니다.
요금 제한/키 관리를 직접 코딩하지 않으려면 http://www.3scale.net/을 살펴 보는 것이 좋습니다.이 서비스는 많은 무료 서비스를 제공합니다 (개발자 포털, 청구서 등). 면책 조항으로, 나는 거기에서 일하므로 약간의 편견이있을 수 있지만 가능한 한 간단하게 정확하게하려고 노력합니다!
내가 추가해야, 당신은 당신의 코드에 드롭 할 수 있고 그 등 당신은 압축 해제 API를 제공 할
- 1. node.js의 서버에서 업로드 속도를 어떻게 제한합니까?
- 2. JFileChooser를 디렉토리로 어떻게 제한합니까?
- 3. SVN 폴더를 어떻게 제한합니까?
- 4. AIR 배포를 어떻게 제한합니까?
- 5. JPQ 출력을 어떻게 제한합니까?
- 6. 랙에서 요청 크기를 어떻게 제한합니까?
- 7. ListField의 전체 높이를 어떻게 제한합니까?
- 8. MultipleChoiceField의 아이템 표시를 어떻게 제한합니까?
- 9. 이벤트 등록자 수를 어떻게 제한합니까?
- 10. FFMpeg CPU 사용을 어떻게 제한합니까?
- 11. CHCSVParser의 메모리 사용을 어떻게 제한합니까?
- 12. 클래스의 인스턴스 수를 어떻게 제한합니까?
- 13. 어떻게 wordpress tagcloud를 날짜까지 제한합니까?
- 14. 앱에서 메소드 액세스를 어떻게 제한합니까?
- 15. Sytem.Windows.Form의 높이를 정확히 어떻게 제한합니까?
- 16. 전송 속도를 어떻게 결정합니까?
- 17. webreference : 어떻게 속도를 높입니까?
- 18. Jnlp Api의 SingleInstanceService는 어떻게 작동합니까?
- 19. 프로그래밍 방식으로 C# 응용 프로그램의 대역폭 사용을 어떻게 제한합니까?
- 20. Postgres에서 특정 열의 가능한 값을 어떻게 제한합니까?
- 21. grep에서 반환되는 결과의 수를 어떻게 제한합니까?
- 22. JPQL 쿼리에서 업데이트되는 행 수를 어떻게 제한합니까?
- 23. Ajax 달력에서 내 기간을 어떻게 제한합니까?
- 24. PHP에서 양식 제출 속도와 입력을 어떻게 제한합니까?
- 25. ASP.NET에서 콤보 상자 컨트롤의 길이를 어떻게 제한합니까?
- 26. iphone 용 xcode에서 개체 이동을 어떻게 제한합니까?
- 27. iPhone App : 점수를 입력하면 작동하지만 어떻게 제한합니까?
- 28. wordpress에서 get_the_content()의 단어 수를 어떻게 제한합니까?
- 29. 제목 만 검색 색인을 어떻게 제한합니까?
- 30. WinCE 6의 메모리 사용을 어떻게 제한합니까?
모든 속도 제한을 가능하게합니다 이는 PHP plugin for 3scale있다? 그게 정말로 합리적입니까? 나는 요즘 대부분의 PHP 설치가 압축 풀기가 기본적으로 설치 될 것이라고 기대합니까? 그렇습니다. –
제목은 질문과 관련이없는 것처럼 보입니다. –
unzip! = rate limit – dogmatic69