2012-03-12 3 views
1

허용 된 프로그래머가 남용하지 못하도록 보호하려는 서비스 (RPC 기반 JSON)가 있습니다.내 API 내 RPC 서버의 키

많은 API가 개인/공개 API 키 시스템을 사용한다는 것을 알고 있습니다. 1 개의 키가 연결을 남용하고있을 때이 하나의 서비스 만 죽일 수 있습니다. 쉽고 빠르게이 작업을 수행하는 방법은 무엇입니까? 주로 알고리즘을 생성하고 키를 확인하는 데 사용해야하는 정보 만 필요합니다 (연결을 시작할 때마다 또는 모든 요청에 ​​대해).

또한 Google AppEngine을 서버로 사용합니다. 당신이 할 수있는 (

import random, string 

key = "".join([random.choice(string.letters + string.digits + string.punctuation) for _ in xrange(64)]) 

그리고 사용자들이 서비스에 만드는 모든 요청에이 키를 포함 있습니다

답변

1

빠른/쉬운 방법은 당신의 서비스에 액세스 할 수있는 각 개발자에 대한 고유 키를 생성하는 것입니다 키를 기반으로 사용량을 추적하고 악용 된 키 금지)

이것은 가장 기본적인 방법입니다. 암호화 및/또는 승인과 같은 단순한 API 키 추적이 필요한 경우 온라인에서 사용 가능한 기존 프로토콜 (예 : OAuth)에서 선택할 수 있습니다.

+0

고유 한 키를 생성하는 것이 좋습니다. uuid. http://docs.python.org/library/uuid.html – specialscope

+0

이 질문에 어떻게 대답해야합니까? 그는 열쇠를 생성하고 * 확인하는 방법을 요구하고 있습니다. 키를 생성하고 응답에 포함하면 아무 것도 보호하지 못합니다. – aschmid00

+0

@ aschmid00 - 사용자가 요청에 제공된 키를 포함하면 서비스가 실행되는 형식 (이 경우 JSON 변수)으로 구문 분석하고 해당 키를 데이터 스토어에서 확인하십시오. OP는 키를 생성하고 확인하는 방법에 관한 것이기 때문에 사용자 모델에 키를 저장하는 코드가 포함되어 있지 않았습니다. 사용자별로이 키를 저장하는 것이 뻔한 것 같습니다. 내가 제안한 방법을 고려할 때 키를 확인하는 것은 사소한 일이다. – someone1

관련 문제