4 Stimmen

Gemeinsames Geheimnis mit API in einer Ajax Adobe AIR App

Ich bin ziemlich neu in der Entwicklung von AIR-Apps, also ist das vielleicht eine dumme Frage, aber ich kann keine Antworten bei Google finden. Jede Hilfe, die du mir geben kannst, wird sehr geschätzt.

Ich baue eine AIR-App mit Ajax, die eine api verwendet, die identisch mit der von flickr ist, mit einem gemeinsamen geheimen Schlüssel. Das Problem ist, dass das AIR-Installationspaket den gesamten Quellcode enthält und ich meinen gemeinsamen geheimen Schlüssel nicht preisgeben möchte. Gibt es einen Weg, dies zu tun? Kann ich einige Quellcode verstecken oder diesen gemeinsamen geheimen Schlüssel irgendwie in die App einbinden, ohne ihn preiszugeben?

Danke für deine Hilfe.

2voto

Sie können EncryptedLocalStore verwenden, um Ihren API-Schlüssel sicher zu speichern.

Sie können es aber nicht mit der Anwendung verteilen, da die Verschlüsselung des Stores davon abhängt, auf welchem Betriebssystem die Anwendung läuft.

Ein Weg, um den Store zu initialisieren, wäre, dies bei der Installation der App zu tun:

  1. Installationsprogramm ausführen
  2. Führen Sie ggf. Post-Installations-Skripte aus.
  3. Überprüfen Sie den Store. Wenn kein Schlüssel vorhanden ist, laden Sie den Schlüssel von Ihrer Website herunter und speichern Sie ihn im ELS.

Mit diesem Verfahren wird der Benutzer Ihren Schlüssel nie erfahren, aber er wird im App-Store vorhanden sein.

0voto

dkretz Punkte 36862

Erste Frage - Erlaubt die Lizenz Ihnen, eine App zu schreiben und sie jemand anderem mit Ihrem Schlüssel zur Verwendung zu geben, anstatt einen eigenen Schlüssel zu haben?

Wenn ja, und wenn dies ein AIR-kompatibles SDK ist, sollten sie eine Methode empfehlen.

BEARBEITEN:

Diese Frage beschreibt, wie Flickr mit einem Schlüssel Zugriff auf zusätzliche Ressourcen ermöglicht. Wenn es sich um eine AIR-App handelt, durchlaufen Sie die Sandbox-Hindernisse, um eine gleichzeitige Internet- und Desktop-App bereitzustellen?

0voto

user43636 Punkte 183

Ich würde entweder den Schlüssel auf dem Server speichern und ihn unter Verwendung von SSL (https://) und der flash.net.URLLoader-Klasse abrufen oder ihn in der verschlüsselten SQLite-Datenbank speichern. Offensichtlich erzeugt die Datenbank viel mehr Overhead, wenn Sie sie nicht bereits verwenden, also würde ich die erste Option wählen, wenn Sie die SQLite-Datenbank jetzt oder in Zukunft nicht verwenden werden.

0voto

Vasil Punkte 34398

Sie können EncryptedLocalStore wie von Pierre-Yves Gillier erwähnt verwenden. Es gibt eine Methode, um festzustellen, ob die Anwendung zum ersten Mal ausgeführt wird. Aber ich würde mich für diese Methode entscheiden:

Überprüfen Sie, ob EncryptedLocalStore den API-Schlüssel hat, und wenn nicht, holen Sie ihn vom Server und speichern Sie ihn.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X