Ich habe einen Google Maps-API-Schlüssel für meine Domain erhalten.
Die Beispiele, die bereitgestellt wurden, als ich meinen Schlüssel erhielt, zeigen den in Anforderungsparameter eingebetteten Schlüssel, zum Beispiel:
<script src="http://maps.google.com/maps?file=api&v=2&sensor=true_or_false&key=my-key" type="text/javascript"></script>
Ich schätze, dass das Referrer-Feld in Anfragen mit meiner Domain übereinstimmen muss. Ist es sicher, meinen Schlüssel in Skript-Tags und dergleichen sichtbar zu machen? Oder gibt es noch andere Schritte, die ich unternehmen sollte?
quelle
In der Google API-Konsole gibt es Einstellungen, die die Verwendung Ihrer API-Bandbreite vor der Verwendung durch eine andere Domain / einen anderen Benutzer schützen können. Sie können dies einschränken und schützen, indem Sie den Referrer in der API-Konsole verwenden. Der API-Schlüssel lehnt Anforderungen ohne Verweise ab, die Ihren Einschränkungen entsprechen.
Hier ist ein Screenshot von Google für API Key, der nur von Google für die beiden Domains verwendet werden kann.
quelle
Obwohl diese Frage einige Jahre alt ist, ist sie sehr gut. Soweit ich weiß, kann das Offenlegen von API-Schlüsseln, selbst wenn sie mit der Domain übereinstimmen, immer noch zu Missbrauch führen. Hier gibt es einen Beitrag zu Security Stack Exchange , der dies ausführlicher behandelt.
Die Schritte, die Sie unternehmen können, um potenziellen Missbrauch zu vermeiden, wurden von Google hier veröffentlicht:
Best Practice-Handbuch für die sichere Verwendung von APIs: https://support.google.com/cloud/answer/6310037?hl=de
Obwohl ich empfehlen würde, alles an Bord zu nehmen, gibt es einen Ansatz, der sich mit dem spezifischen Beispiel befasst, das von Brabster veröffentlicht wurde, und der darin besteht, den Schlüssel in einer Umgebungsvariablen zu speichern . Auf diese Weise müssen Sie lediglich eine serverseitige Variable, die in Ihrem Projekt gespeichert ist, durch den Schlüssel ersetzen. Stellen Sie jedoch sicher, dass Sie die Datei, in der der Schlüssel gespeichert ist, nicht in ein öffentliches Repository übertragen.
quelle
Sie sollten die Back-End- / Serverseite verwenden, um den Schlüssel zu schützen und zu handhaben. In meinem Fall habe ich die Django f / w-Serverseite verwendet, die einen Ajax-Aufruf ausführen kann, um den Schlüssel vom Serverskript / der Datenbank abzurufen und ihn dann an die Google-API weiterzuleiten.
quelle