2012-02-25 2 views
1

API와 같이 웹 사이트에 옵션을 추가하려면 어떻게해야합니까?유효성 검사가 포함 된 임의 키 생성기

때 누군가가 내 데이터베이스

name을 추가합니다 my.site.dot.com/api.php?id=name 전화하지만 난 내가 키를 사용하는 방법에 대해 생각을 해 봤는데 스팸 항목을 많이 받고 있어요! 키가 바로 그때 인 경우

은 그래서 my.site.dot.com/api.php?id=name&key=MMSDJJSHHHAG 같은 것 그것은 echo "passed"; 잘못된 경우 echo "stopped";

는 나도 문자 또는 숫자 또는 둘의 임의의 키를 생성 할 수있는 기능을 원하는 이제 내 질문에 도대체 무엇이.

그러나 결론은 키도 알 수 있어야한다는 것입니다. 이유는 무엇입니까? 누군가 my.site.dot.com/api.php?id=name&key=MMSDJJSHHHAG에 전화하면 MMSDJJSHHHAG이 유효한 키임을 알게됩니다.

<?PHP 
echo $id; //name 
echo $key; //MMSDJJSHHHAG 

if (key is valid) { 
echo "passed"; 
} else { 
echo "stopped"; 
} 
?> 

my.site.dot.com/api.php?id=name&key=MMSDJJSHHHAG 나는 내가 텍스트 파일 또는 데이터베이스 테이블 ... 등에 저장하는 새로운 키를 생성 할 때마다 같은 몇 가지 다른 아이디어가 알고있는 것은 좋은 생각하지만 나는 그것을 생성 할 수 있습니다 사람이 할 수있는 내가 수학 방정식 생각하고 아래 :(

새로 만드는 사이트의 수십억 수 있도록!이 아이디어에 대한 도움을 ~ 감사에게 많은 페이지를보고 따라

답변

1

당신에게 방법을 암호화/hasing을 사용할 수 있습니다 당신이 말하는이 열쇠를 만들어 내라. 에 대해. (예 : md5)

대부분의 웹 서비스에서 API를 사용하려면 계정이 있어야합니다. 이러한 서비스는 계정의 키와 일치합니다.

기본적으로 각 작업이나 새로 고침이 아닌 각 계정에 대한 키가 있습니다. api 회원 테이블의 'api_key'테이블에 다른 필드를 추가하면 바로 사용할 수 있습니다.

문제와 관련하여 다른 필드 (예 : site_url)를 추가 할 수도 있습니다. api.php 파일은 request의 "소스"를 확인합니다. 요청의 KEY 및 SOURCE가 하나의 계정에 존재하면 수행해야 할 작업이 수행되며, 그렇지 않은 경우 die() 또는 이와 비슷한 작업이 수행됩니다.

+0

감사합니다. 사용자가 등록 후 키를 가져 오면 회원 당 하나의 키가되지만, 아이디어는 등록없이 무료 api를 기반으로하며 페이지가 어쨌든 많이 감사하고 내가 그걸 할 수있는 방법을 찾지 못했다면, 등록 할 때 열쇠로 돌아갈 수 있습니다. –

1

키가 사용자에게 고유하지 않으면 모든 패턴으로 키를 생성하는 것이 단순히 모호함을 통해 보안을 유지하는 것입니다. 이미 누군가가 API를 스팸하고있는 경우 로직은 애플리케이션에서 사용하는 URL을 관찰했으며 이미 맹목적으로 (또는 의도적으로) 호출하고 있음을 나타냅니다. 고유하지 않은 패턴 생성 키를 첨부하면 관찰자는 키가 서버 측을 통과하지 않는 한 해당 URL을 스누핑하여 스팸으로 처리합니다.

결론 스팸을 차단하려면 실제 인증 방법을 사용해야합니다.

관련 문제