Sven: (PHP) Serverseitige Skripte vor unberechtigtem Aufruf schützen?

Hallo,

ich habe mich vor einiger Zeit überzeugen lassen, künftig doch JavaScript / AJAX einzusetzen (bisher lehnte ich sowas strikt ab, aber die Vorteile scheinen klar zu überwiegen).

Nur stellt sich mir die Frage: Wenn ich beispielsweise auf einer Webseite, zum Beispiel einem x-beliebigen Portal bin, und mich dort im Posteingang eines internen Nachrichtensystems befinde... dann würde ich ein PHP-Skript aufrufen, das mir die Nachrichten, Betreffs, etc. aus der Datenbank ausliest und für JavaScript aufbereitet ausgibt. In JavaScript kann ich dann damit anstellen, was immer ich will... tabellarische Ausgabe mit Sortierung und Blätterfunktion zum Beispiel.

Aber: Jetzt guckt sich jemand den JS-Quellcode an und sieht, wie das PHP-Skript aufgerufen wurde. Was hindert ihn nun, die Aufruf-Parameter abzuändern, um an andere Daten zu gelangen, die nicht für ihn bestimmt sind?

Wie schützt man sich vor so etwas? Stell ich mir problematisch vor, da der JS-Quellcode ja nunmal unweigerlich "offen" liegt. Man muss sicher im serverseitigen Skript irgendeine Überprüfung einbauen - aber WIE?

Beste Grüße
Sven

  1. Wie schützt man sich vor so etwas? Stell ich mir problematisch vor, da der JS-Quellcode ja nunmal unweigerlich "offen" liegt. Man muss sicher im serverseitigen Skript irgendeine Überprüfung einbauen - aber WIE?

    Die Frage ist warum?

    Über Ajax sollte der Besucher der Seite nicht mehr bekommen, als ohne Ajax.

    Wenn du durch Manipulation des Requests beliebige Daten abfragen kannst, kannst du das in einer Umgebung ohne Ajax mit derselben Logik auch.

  2. Hi,

    Aber: Jetzt guckt sich jemand den JS-Quellcode an und sieht, wie das PHP-Skript aufgerufen wurde. Was hindert ihn nun, die Aufruf-Parameter abzuändern, um an andere Daten zu gelangen, die nicht für ihn bestimmt sind?

    Das ist kein JS- oder AJAX-Problem.

    Wenn die Daten auf herkömmlichem Wege (Link/Formular) abgerufen würden, wäre das Problem exakt das selbe.

    Wie schützt man sich vor so etwas? Stell ich mir problematisch vor, da der JS-Quellcode ja nunmal unweigerlich "offen" liegt. Man muss sicher im serverseitigen Skript irgendeine Überprüfung einbauen - aber WIE?

    Du benötigst irgendeine Art von Authentifizierung.
    Bspw. über Sessions lässt sich sowas in PHP recht komfortabel und einfach realisieren.

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
  3. Hallo,

    was hat dir bei der Suche mit Google nicht geholfen?
    http://www.google.de/search?q=ajax+php+security

    Grüße

  4. hi,

    .. Was hindert ihn nun, die Aufruf-Parameter abzuändern, um an andere Daten zu gelangen, die nicht für ihn bestimmt sind?

    Gar nichts hindert einen Besucher, Aufruf-Parameter nach seinen eigenen Vorstellungen zu gestalten. Aber ein serverseitiges Script sollte schon so beschaffen sein, dass es nur das ausliefert, was die Besucher auch sehen dürfen.

    Und ja, in a-Tags href-codierte Parameter like limit=1,20 sind zwar schön aber Du musst damit rechnen, dass sich ein Besucher über lange Ladezeiten beschweren könnte, wenn eine Eingabe limit=1,20000000 ungefiltert durchgeht ;)

    Hotti

    1. hi,

      Und ja, in a-Tags href-codierte Parameter like limit=1,20 sind zwar schön aber Du musst damit rechnen, dass sich ein Besucher über lange Ladezeiten beschweren könnte, wenn eine Eingabe limit=1,20000000 ungefiltert durchgeht ;)

      Ich glaub nicht daß jemand, der solche Fragen stellt, Tabellen mit zig-Millionen Einträgen verwaltet...

      1. hi,

        Und ja, in a-Tags href-codierte Parameter like limit=1,20 sind zwar schön aber Du musst damit rechnen, dass sich ein Besucher über lange Ladezeiten beschweren könnte, wenn eine Eingabe limit=1,20000000 ungefiltert durchgeht ;)

        Ich glaub nicht daß jemand, der solche Fragen stellt, Tabellen mit zig-Millionen Einträgen verwaltet...

        Tipp: Bevor Du meine Antworten kommentierst, überlege mal den Sinn, den ich darin mitgegeben habe.

        Hotti

        1. HI there,

          Tipp: Bevor Du meine Antworten kommentierst, überlege mal den Sinn, den ich darin mitgegeben habe.

          Ich hab noch eine bessere Idee, ich werde nächstemal fragen, ob ich Deine Antworten kommentieren darf...