Geschützte Inhalte vom Server holen

Manchmal möchte man keine Dinge im Quellcode speichern, weil diese eventuell eingesehen kann oder es sich um veränderliche Dinge handelt, die sich stets ändern können.

Ein Beispiel für ein solche Szenario sind Links (URL).  Der Entwickler will z.B. einen Abgleich mit seinem Lizenzserver vornehmen oder die URL muss “geheim” berechnet werden.

In diesem Quicktipp holen wir uns eine URL durch eine Passwortabfrage. Die URL steht nicht im Quellcode, sondern wir erst bei erfolgreichem “Login” an FileMaker gesendet.

Was wird benötigt?

  • Webspace mit PHP
  • FileMaker, der den Script-Schritt “Aus URL einfügen” unterstützt
  • Editor z.B. NotePad++ oder TextWrangler
  • FTP-Programm

 

Schritt 1

Erstelle am besten einen Ordner (z.B. secretURL) auf Deinem Webspace. In diesem Ordner legen wir ein PHP-File mit dem Namen “index.php”.

Die Datei “index.php” beinhaltet folgenden Quellcode:

<?php

if($_GET["pwd"] != 'Pa$$w0rd')
{
    header("HTTP/1.1 401 Unauthorized");
    exit;
}

echo "fmp://meinFileMakerServer/MeineDatei.fmp12?script=meinScript&param=meineParameter";

?>

Das Passwort wird mit dem GET-Parameter “pwd” an das PHP-File übergeben.

In der IF-Anweisung überprüfen wir, ob $_GET[“pwd”]  unserem Passwort “Pa$$w0rd” (dein gewähltes Passwort) entspricht. Sollte das Passwort nicht korrekt sein, wird ein Header 401 gesendet, was keinen Zugriff bedeuetet.

Über den Befehl “echo” machen wir die Bildschirmausgabe bzw. das was FileMaker empfangen soll.

Tipp:

Man kann auch ein JSON zurückgeben, dann hat man eine kleine JSON-API 😉

 

Schritt 2

Nun schreiben wir das Script in FileMaker.

Fehleraufzeichnung setzen [ Ein ] 

Feldwert setzen [ gb_GLOBAL::TEXT1; "" ]

Eigenes Dialogfeld anzeigen [ Titel: "#Meldung"; Mitteilung: "Passwort eingeben"; Standardtaste: “ok”, Schreiben: “Ja”; Taste 2:
“abbrechen”, Schreiben: “Nein”; Eingabe 1: gb_GLOBAL::TEXT1, Passwort, "Passwort:" ]

Variable setzen [ $URL; Wert:"https://mein.Server.tdl/secretURL/?pwd=" & gb_GLOBAL::TEXT1 ]

Aus URL einfügen [ $URLSecret; $URL ]
[ Auswahl; Ohne Dialogfeld ]

Wenn [ Hole ( LetzteFehlerNr )  ≠ 0 ]

    Eigenes Dialogfeld anzeigen [ Titel: "#Meldung"; Mitteilung: "Fehler beim Abruf der URL"; Standardtaste:“ok”, Schreiben: “Nein” ]

    Alle Scripts abbrechen

Ende (wenn)

URL öffnen [ $URLSecret]
[ Ohne Dialogfeld ]

Das FileMaker-Script setzt über das Eigene Dialogfeld das Passwort in das globale Feld “TEXT1”. Dann generieren wir die URL zu unserem PHP-File und hängen “TEXT1” (unser Passwort) als GET-Parameter an die eigentliche URL an.

https://mein.Server.tdl/secretURL/?pwd=" & gb_GLOBAL::TEXT1

Wir senden den Request mittels “Aus URL einfügen” ab und prüfen, ob ein Fehler vorlag.

Da wir im PHP-File einen “Error-Header” (Zugriff verweigert; http-Status-Code 401) setzen, veranlasst das FileMaker dazu einen Fehler (1627; Authentifizierung fehlgeschlagen) auszugeben.

Sollte kein Fehler aufgetreten sein, wird die empfangene URL über “URL öffnen” geöffnet. In diesem Quicktipp würde er eine FileMaker-Datei öffnen.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.