2010-11-27 7 views
3

Ich habe eine Web-API, die ich jede Domain einreichen Daten zulassen möchten. Allerdings gefälschten Spam zu halten ich einen Weg finden will, um sicherzustellen, dass eine Anforderung besagt es von ist eine bestimmte Domain tatsächlich aus dieser Domäne ist und, dass jemand versucht, mich nicht zu täuschen, indem auf einem anderen Domäne Namen veröffentlichen.Wie überprüfen Sie, ob eine API-Anfrage von einer bestimmten Domain stammt?

Zum Beispiel, wenn http://example.com einige Daten einreicht - das ist gut. Wenn Skriptkiddie # 237 Daten vorgibt, die behaupten, example.com zu sein - das ist schlecht.

Zuerst werde ich einen geheimen Schlüssel System HMAC Zeichen jede Anfrage verwenden - aber die Registrierung ist offen, frei sein würde, und für diese API automatisiert. Ich bin nicht sicher, wie ich sagen könnte, ob PersonA oder PersonB wirklich http://example.com besitzt und den API-Schlüssel verdient.

+0

verteilen API-Schlüssel, die zu einer Domäne bindet. Sie überprüfen dann nur den Schlüssel und stellen sicher, dass die Anfrage von einer gültigen Domäne stammt. Ihr Schlüssel müsste ein gesalzener Hash der Domäne sein, für die der Schlüssel gültig ist. Nur meine $ 0,02. –

Antwort

2

Geben Sie eine Schlüsseldatei, die sie auf dieser Domäne hochladen müssen. Und Sie überprüfen die Existenz und die gültigen Daten gegen Ihre interne Datenbank.

+1

Tolle Idee, habe ich vergessen, aber auch Google verwendet diesen Ansatz. Ich wäre jedoch nett, wenn es eine Antwort gäbe, die nicht das Verifizieren von HTTP-Anfragen beinhaltet. Vielleicht eines Tages. http://code.google.com/apis/accounts/docs/RegistrationForWebAppsAuto.html – Xeoncross