Pit: Mobilgerät erkennen

Hallo Forum,

ich lasse den Zugriff auf ein Script durch eine App (eines Fremdanbieters) zu. Die App führt einen Fileupload durch. Theoretisch installiere ich die App auf dem Tablet, praktisch könnte aber der User die App auch selber installieren. Dadurch würde aber mein Lizenzmodell unterlaufen. Der Hersteller der App könnte natürlich die Geräte-ID mit dem Upload mitliefern, das liegt aber in mittelbarer Ferne. Gibt es andere Ideen, wie ich einen Tabletzugriff als mir bekannt "identifizieren" kann, wenn schon nicht 100%ig, dann wenigstens "anhaltspunktweise"?

Pit

  1. Hallo Pit,

    die Absender-IP hilft Dir nichts. Bekommst Du von der App irgendwelche HTTP Header mit (wenn es denn eine HTTP Kommunikation ist), die eine Identifikation ermöglichen könnten?

    Aber die Antwort lautet in solchen Fällen eigentlich User Authentication. Der User muss eine User-ID und ein Kennwort haben und nur damit ist der Upload möglich. Die App muss diese authentisierte Übertragung dann natürlich unterstützen, und das Anwendungsdesign muss so sein, dass ein Sharing von User-IDs nicht im Interesse der Anwender liegt.

    Identifikation via Geräte-ID ist aus meiner Sicht nicht so toll. Du musst bei Dir die Geräte-IDs, die berechtigt sind, verwalten. Was ist bei Geräte-Defekt? Was ist, wenn der Anwender die App auf 2 Geräten nutzen will? Das ist viel Verwaltungsaufwand. Und wer hindert einen schlauen Menschen, den Netzwerkverkehr zu sniffen und dann einen Fake-Request mit einer gefälschten ID zu senden?

    Rolf

    --
    sumpsi - posui - clusi
    1. Hallo Rolf,

      die Absender-IP hilft Dir nichts. Bekommst Du von der App irgendwelche HTTP Header mit (wenn es denn eine HTTP Kommunikation ist), die eine Identifikation ermöglichen könnten?

      Es ist eine HTTP Kommunikation und ich erhalte ein $_FILES Array. IP nützt nichts, das ist klar.

      Aber die Antwort lautet in solchen Fällen eigentlich User Authentication. Der User muss eine User-ID und ein Kennwort haben und nur damit ist der Upload möglich. Die App muss diese authentisierte Übertragung dann natürlich unterstützen, und das Anwendungsdesign muss so sein, dass ein Sharing von User-IDs nicht im Interesse der Anwender liegt.

      Klar, das ist alles natürlich gegeben. Aber es ist ein 2-stufiges System. Nicht jeder mit ID und Passwort darf auch per App uploaden. Ok, der App-Hersteller bietet mir zwar an, ihm eine Kundenliste zu geben, damit er entsprechende Anfragen dann an mich weiterleitet. Nützt aber nichts, da er darüber hinaus auch an Endkunden verkauft.

      Identifikation via Geräte-ID ist aus meiner Sicht nicht so toll. Du musst bei Dir die Geräte-IDs, die berechtigt sind, verwalten. Was ist bei Geräte-Defekt? Was ist, wenn der Anwender die App auf 2 Geräten nutzen will? Das ist viel Verwaltungsaufwand. Und wer hindert einen schlauen Menschen, den Netzwerkverkehr zu sniffen und dann einen Fake-Request mit einer gefälschten ID zu senden?

      Ja, ich kenne die Nachteile der Geräte-ID. Aber mir fällt derzeit nichts Sinnvolleres ein. Ich würde jedenfalls ganz gerne verhindern, dass die App, die bei mir in einer Gesamtinfrastruktur eingebunden ist und hierauf kalkuliert lizensiert ist, daneben auch unlizensiert diese Infrastruktur nutzen kann. Also würde ich gerne die lizensierten von den unlizensierten (sofern es sie gibt) unterscheiden können.

      Pit

      sumpsi - posui - clusi

      1. Hallo Pit,

        dann muss die App dir irgendwas geben. Authentisierte User-ID, Geräte-ID, egal, irgendwas. Die Glaskugel-Extension von PHP gibt's leider nur für Leute mit Hellseher-Lizenz.

        Wenn du eine User-ID bekommst, kannst du die in einer Berechtigungstabelle genauso gut nachgucken wie eine Geräte-ID.

        Oder die hochgeladene Datei muss was enthalten, woran du das Uploadrecht festmachen kannst.

        Rolf

        --
        sumpsi - posui - clusi
        1. Hallo Rolf,

          dann muss die App dir irgendwas geben. Authentisierte User-ID, Geräte-ID, egal, irgendwas. Die Glaskugel-Extension von PHP gibt's leider nur für Leute mit Hellseher-Lizenz.

          Wie gesagt, würde sie das tun, hätte ich keine Fragen hierzu 😉 Da sie das nicht tut, muß ich anders vorgehen. Wohlwissend, dass ich dann keine 100%ige Lösung erhalten werde, sodnern maximal einen "Verdachtsmoment". Oder aber ich müßte das Lizenzmodell über die App hinaus userbezogen anwenden, das würde sogar zu den bestehenden Lizenzbedingungen passen. Denn den User kenne ich, bzw. kann es der App mitteilen, die es dann wieder dem Server mitteilt.

          Wenn du eine User-ID bekommst, kannst du die in einer Berechtigungstabelle genauso gut nachgucken wie eine Geräte-ID.

          Oder die hochgeladene Datei muss was enthalten, woran du das Uploadrecht festmachen kannst.

          Ich habe bei der hochgeladenen Datei genau einen Parameter, den ich beeinflussen kann. Der ist auch mit vertretbaren Mitteln für den User nicht fakebar. In den könnte ich den Usernamen einbinden (in welcher Form auch immer) und dann auf dem Server prüfen. Ja, ich denk, so werde ich das machen… danke für Deine Hilfe.

          Pit

          1. Hallo Pit,

            Da sie das nicht tut,

            du schriebst, du bekämest nur das $FILES Array. Aber was ist mit den HTTP Headern, liefert die App nichts? Du bekommst die Header entweder über apache_request_headers, oder über die HTTP-Einträge in $_SERVER, wenn Du nicht als Apache-Modul oder -FastCGI läufst.

            Rolf

            --
            sumpsi - posui - clusi
            1. Hallo Rolf,

              du schriebst, du bekämest nur das $FILES Array. Aber was ist mit den HTTP Headern, liefert die App nichts? Du bekommst die Header entweder über apache_request_headers, oder über die HTTP-Einträge in $_SERVER, wenn Du nicht als Apache-Modul oder -FastCGI läufst.

              Sorry, das hattest Du ja schon früher erwähnt und ich bin nicht darauf eingegangen. Grund war, dass hier nahezu nur meine eigenen Daten drin stehen. Da ist nichts unique, das sind alles meine Serverdaten. Das Dokument, das hochgeladen wird, kommt von meinem Server, geht zur App und kommt wieder zurück.

              Pit