Kann ich es vermeiden, mein Twitter API Consumer Secret in meine iPhone App Binary zu brennen?

8

Ich möchte OAuth für Twitter von einer iPhone App aus tun. Aber das bedeutet, dass ich mein API-Geheimnis neben meinem API-Schlüssel haben muss, der in die Anwendungsbinärdatei eingebacken ist. Dies ist offensichtlich unerwünscht.

Facebook unterstützt die Idee eines Session-Proxys , um das parallele Problem mit der API zu umgehen.

Kann ich so etwas für Twitter tun?

    
Ben Zotto 07.03.2010, 18:42
quelle

2 Antworten

15

Kurze Antwort: Nein.

OAuth wurde für Webanwendungen entwickelt und funktioniert sehr gut. Es ist ein quadratischer Stift in einem runden Loch für native Anwendungen. Spezifikation 1.0a sollte es für native Anwendungen lebensfähiger machen, aber es hilft wenig.

Wie Sie bereits gesagt haben, besteht eines der Hauptprobleme darin, dass die Consumer Keys in der Anwendung gespeichert werden müssen. Kein Problem für Webanwendungen, bei denen der Zugriff auf die Quelle begrenzt ist, aber ein großes Problem für native Anwendungen.

Das andere große Problem hat damit zu tun, dass es gegenüber Standard-Anmeldeformularen für native Anwendungen keine zusätzliche Sicherheit bietet, aber ich werde nicht darauf eingehen.

Aber da Twitter Sie zwingt, wenn Sie Zugriff auf höhere Ratenbegrenzungen und Ihren mit Tweets verbundenen Anwendungsnamen haben möchten, haben Sie kaum eine andere Wahl.

Die einzige Möglichkeit, um zu verhindern, dass der Consumer-Schlüssel Ihren Anwendungscode eingibt, besteht darin, alle Anfragen über Ihren eigenen Server zu übernehmen.

    
chrissr 07.03.2010, 18:58
quelle
1

Einige setzen den Schlüssel in eine Einstellungsdatei, die die Anwendung liest. Andere speichern den Schlüssel in einer Datenbankdatei lokal für die App. Andere speichern den Schlüssel auf ihrem eigenen Server und die native App verbindet sich mit dem Server, um den Schlüssel und das Geheimnis zu erhalten.

    
Ryan Alford 07.03.2010 20:49
quelle