String: ApiKey in Java vor Reverse Engineering schützen

meckiebro

Mitglied
Hallo zusammen,
Ich nutze die Thetvdb Schnittstelle und möchte meinen ApiKey schützen. Nur wie kann ich das machen. Ich muss den key im Programm verwenden um an die Daten von TheTVDB zu kommen. In den .class Dateien kann man diesen key relativ einfach finden.

Gibt es da eine effektive Methode für? Den Rest des codes kann man von mir aus sehen aber den Key nicht.

MFG
Meckie
 
Hallo,

eine Möglichkeit wäre einen kleinen Proxy zwischen deiner Anwendung und den Thetvdb Webservice laufen zu lassen.

In deiner Anwendung gehst du dann einfach gegen den Proxy. Dieser sendet die empfangenen Anfragen (erweitert um deinen API-KEY) an Thetvdb weiter. Die Antwort leitet dein Proxy dann einfach an deinen anfragenden Client weiter.

So bleibt dein APIKEY immer unter deiner Kontrolle (auf deinem Server).

Gruß Tom
 
Hi Tom,

danke für deine Antwort. Daran habe ich auch schon gedacht. Ist nur schade, wegen dem Traffic und das mein Server immer Verfügbar sein muss. Aber schonmal eine gute Option.

Hab ein bissle über das unleslich machen des Codes gelesen. Gibt da Programme wie JavaGuard oder vergleichbares. Aber irgendwie ist das wohl auch nicht 100%ig. Also wenn jemand an den Key will kommt er da wohl auch dran.

Sonst noch Ideen?
 
100%ige Code Obfuscation gibt es nicht. Außer du entwickelst eine eigene Sprache mit eigenem Interpreter ;)

Ich würde an deiner Stelle mal bei den anderen unter http://thetvdb.com/ aufgelisteten Software-Projekten nachfragen/nachforschen wie die das machen. MediaPortal ist OpenSource, XMBC auch.

Vielleicht reicht es auch, nur die Authorisierung über deinen Proxy zu machen, die Daten aber direkt zu übertragen? Vielleicht kannst du den APIKey auch 'salted' oder irgendwie anders modifiziert im Programm speichern und ihn regelmäßig von deinem Server neu laden lassen.
 
Zurück