Anfrage aus App heraus versenden

  • Hallo,


    ich soll eine App für eine kleine Firma entwickeln, deren Kunden aus der App heraus eine Anfrage über ein kleines Formular senden können.


    Geht das nur über einen Server oder gäbe es noch einen anderen Weg?


    Server hätte für mich zwei Nachteile:


    1. Habe bisher noch nicht serverseitig programmiert
    2. Da die Zugangsdaten zum Server ja in der App hinterlegt sein müssten, könnten Dritte diesen Zugang doch leicht ermitteln und vollspammen. Oder mache ich hier einen Denkfehler?


    Grüße


    Lars

  • Wie willst du das Formular denn übersenden und was für ein Format hätte das? Denkbar wäre natürlich das ausgefüllte Formular einfach per E-Mail zu versenden. Eine schönere Möglichkeit wäre, das ganze mittels HTTP-Parser und einem RESTful Web Service aufzunehmen. Falls die Firma bereits so ein Formular auf deren Internetseite hat, kannst du es auch darüber direkt eintragen.

  • Danke für deine Antwort.


    Gut wäre schon, wenn bei der Firma die Anfrage dann per E-Mail ankommt.


    Aber kann man die Daten des Formulars denn aus der App per E-Mail im Hintergrund versenden? Also ohne dass der E-Mail-Client des Users aufgerufen wird?


    Grüße


    Lars

  • Das wäre auf jeden Fall möglich. Du könntest im Hintergrund eine Mail via SMTP verschicken ohne, dass die normale Mail-App aufgerufen wird.
    Dazu würdest du dann eine Mail über einen externen Mail-Anbieter oder den eigenen Mail-Server verschicken. Baust dir also praktisch einen eigenen schlanken Mail Client.


    Wenn man das wirklich ordentlich gestalten will wäre natürlich das eintragen in eine Datenbank via Web Service + ordentliche Ausgabe für die Firma die schönere Wahl. Aber ich kenne ja auch deren gestellte Ansprüche nicht.

  • Man könnte an der Stelle noch mit geschickter Verschlüsselung der Zugangsdaten arbeiten. Die Ablage der Zugangsdaten dürfte nicht in den Shared Preferences oder einer SQLite-Datenbank auf dem Gerät erfolgen. Die Verbindung zum Mail-Server müsste zudem verschlüsselt sein.


    Die schönere und professionelle Lösung wäre auf jeden Fall der RESTful Web Service. Gibt dazu auch sehr viele gute Artikel im Netz.

  • Es gibt ein Dokument von Google, in dem empfohlen wurde, sensible Daten wie API-Keys nicht ganzheitlich, sondern verteilt auf verschiedene Methoden im Programmcode zu speichern und erst zum benötigten Zeitpunkt zusammenzusetzen. Kombiniert mit einer Verschlüsselung sollte es Reverse Engineerern nur schwer gelingen brauchbare Daten zu extrahieren.


    Was die Verbindung zum Mail-Server angeht, da könntest du dich in HTTPS und SSL einlesen.


    Ich empfehle allerdings sich mit Web Services auseinanderzusetzen, das ist auch in deinem weiteren Entwicklerleben praktisch unumgänglich.

  • Es gibt ein Dokument von Google, in dem empfohlen wurde, sensible Daten wie API-Keys nicht ganzheitlich, sondern verteilt auf verschiedene Methoden im Programmcode zu speichern und erst zum benötigten Zeitpunkt zusammenzusetzen.

    Interessant. Hast du oder jemand anderes hier einen Link auf dieses Dokument?



    Ich empfehle allerdings sich mit Web Services auseinanderzusetzen, das ist auch in deinem weiteren Entwicklerleben praktisch unumgänglich.

    Du schreibst, dass der Weg über Web Services "ordentlicher" wäre oder "schöner". Ich weiß nicht so richtig, was du damit meinst. Wo liegt der Vorteil von Web Services, wenn der Empfänger eh nur eine E-Mail mit den Daten der Anfrage erhalten soll?


    Wäre das sicherer? Das wäre natürlich ein Argument, denn ich möchte auf keinen Fall, dass der Empfänger, also die Firma aufgrund eines Fehlers zugespammt wird ... =O

  • Einen Link habe ich nicht, aber das wurde im Zusammenhang mit dem Speichern und Verwenden von API-Keys erläutert. Problemstellung war, dass keine dritten Zugriff auf die persönlichen API-Keys der Developer erhält, dieser aber natürlich in der App hinterlegt werden müssen. Im Prinzip stückelst du einfach deine Daten, verschlüsselst sie, hinterlegst sie in unterschiedlichen Methoden und setzt sie bei Bedarf wieder zusammen. Das soll Reverse Engineerern erschweren an die Keys zu kommen. Das ganze lohnt natürlich nur, wenn der Kommunikationsweg zum Server auch ordentlich verschlüsselt wird, damit die Daten nicht dort abgefangen werden können.


    Wenn du einen externen Mail-Anbieter nimmst, hast du das Problem, dass evtl. Probleme aufkommen, wenn der etwas an seinem Server verändert und du nicht schnell genug die App nachbesserst. Oder wenn du gezwungen wirst, dein Passwort zu ändern, weil es irgendeine Sicherheitslücke gibt(bspw. extreme Probleme bei Yahoo). Betreibst du einen eigenen Web- und/oder Mail-Server, kannst du genau so gut auch einen einfachen Web Service programmieren und die Formulare in eine Datenbank eintragen. Evtl. mit Backend für die Firma. Ich würde einem Firmenkunden zum Beispiel keine Lösung anbieten ohne ordentliches Backend, aber das ist natürlich auch anspruchsabhängig.


    Beide Lösungen können sicher oder unsicher umgesetzt werden. Beim ersteren wäre das Problem es Reverse Engineerern es zu erschweren bzw. unmöglich zu machen Daten zu extrahieren, beim zweiten steht und fällt die Sicherheit mit dem Web Service.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!