Faking API - Wir bauen uns eine Schnittstelle

Google AdWords Script

Best Practice sieht mit Sicherheit anders aus, aber selbst heute, wo REST-Schnittstellen kaum wegzudenken sind, steht man hin und wieder vor dem Problem, dass man an wichtige Daten einer Fremdanwendung aus diversen Gründen nicht heran kommt. Dies kann viele Gründe haben, entweder das komplette Fehlen einer Schnittstelle oder Barrieren bei der Entwicklung einer API-Anwendung.

Nachfolgend möchte ich einige Möglichkeiten aufstellen, wie man dennoch an die Daten von anderen Seite gelangen kann, ohne auf eine API vertrauen zu müssen.

Web-Scraper

Etwas das einem sicherlich sofort in den Sinn kommt, wenn keine API bereit steht, ist ein Web-Scraper. Gerade durch die Verwendung von XPath ist dies eine recht einfache Art und Weise an die Daten einer Seite zu kommen. Problematisch wird das ganze nur, wenn sich die Struktur der angeforderten Seite ändert, den jede noch so kleine Änderung kann zu einer Änderung des Codes führen.

Jedoch bieten Web-Scraper auch einige Vorteile. Im Gegensatz zu vielen APIs gibt es beim Scrapen keine Begrenzung, zumindest dann, wenn man es richtig macht. Auch die Datenformate sind egal. Bilder lassen sich genauso gut Scrapen wie ganze Webseiten oder nur Fragmente davon. Selbst Passwortgeschützte Bereiche stellen oftmals kein Problem dar.

Besonders praktisch sind Scraper meiner Meinung nach für einen einmaligen "Datenklau", bspw. zur Erstbefüllung.

Ajax-Seiten

Bei Webseiten, welche Ajax nutzen oder sogar komplett damit umgesetzt sind (beispielsweise mit AngularJS oder Backbone), ist es noch leichter an die Daten zu gelangen. Den die Ajax-Anfragen laufen auf öffentliche Bereiche und können praktisch von jedem genutzt werden, der es richtig anstellt. Im Idealfall erhält man hier die Daten sogar in JSON oder XML und muss sich nicht die Mühe machen, nochmals HTML per XPath zu zerlegen.

E-Mail-Postfach

Sobald eine Seite oder Anwendung den Versand von E-Mails erlaubt, im Idealfall sogar mit Anhängen, ist die Sache klar. Google AdWords bietet diese Möglichkeit mit seinen Skripten. Daten können dadurch in CSV übertragen, per E-Mail versendet und anschließend per Cronjob aus dem Postfach ausgelesen und weiter verarbeitet werden.

Nun mag der ein oder anderen mit Recht behaupten, dass ein Postfach sogesehen "öffentlich" ist und daher die Sicherheit darunter leidet. Ziel ist es also, das Postfach gegen fremde Mails abzusichern bzw. diese zu ignorieren. Ein sehr einfacher Ansatz ist es, die Kombination aus Absender und Betreff für den Sicherheitsaspekt zu missbrauchen. Der Absender steht für den Benutzer und der Betreff für das Passwort bzw. den Schlüssel.

FTP

Auch Anwendungen die Daten auf dem Server ablegen, lassen sich gut als Schnittstellen missbrauchen. Auch wenn dies eher selten vorkommt, so ist dies wohl der angenehmste Weg, diese Daten einfach per FTP auszulesen und in der eigenen Anwendung zu verarbeiten.

Fazit

Sobald eine Seite oder Anwendung Daten nach außen gibt, egal auf welche Art und Weise, ist es auch möglich sich diese Daten zu Nutze zu machen.

Welches sind die ungewöhnlichsten Möglichkeiten, die ihr bereits genutzt habt, um an Daten zu gelangen?


zurück