Steffi: Ideen für Schutz

Hello,

ich habe eine dynamische Datenbankabfrage per PHP. Nach dem Motto

xyz.de/suche.php?variable1=x&variable2=y

Ich möchte unter allen Umständen verhindern, dass jemand diese URL direkt aufruft. Man soll immer über suche.php geben, und dann das Formular von Hand ausfüllen müssen.

FRAGE: Gibt es da irgendeine einfache Schutzidee?

  1. Hallo,

    Nimm POST anstatt GET.

    Dieter

  2. Hallo,

    Ich möchte unter allen Umständen verhindern, dass jemand diese URL direkt aufruft.

    Warum?
    Es ist doch Dienst am Kunden, wenn auch direkte Suchresultate
    z.B. als Bookmark gespeichert werden koennen.

    Man soll immer über suche.php geben, und dann das Formular von Hand ausfüllen müssen.

    Das ist aktive Benutzer-Belaestigung.
    Du wirst Dir damit keine Freunde machen.

    Es erwartet doch auch niemand von Dir, dass
    Du im Zeitalter von Waschmaschinen Deine
    schmutzige Waesche am Brunnen mit Seife und
    Buerste waeschst.

    FRAGE: Gibt es da irgendeine einfache Schutzidee?

    Ja.

    • POST verwenden und nur Daten aus $_POST akzeptieren.
    • Sessions.
    • Methoden mit einem "Challenge", d.h. z.B. einem
         String, der ins Formular eingebaut wird und
         nur kurzfristig gilt.

    Auf den Referrer solltest Du uebrigens nicht bauen.
    Der kann oft leer (oder sogar gefaelscht) sein, ohne dass
    dies im Einflussbereich des Benutzers liegt.

    Gruesse,

    Thomas

  3. Hallo!

    Ich möchte unter allen Umständen verhindern, dass jemand diese URL direkt aufruft.

    FRAGE: Gibt es da irgendeine einfache Schutzidee?

    In dem Du nur Variablen aufnimmt, die über POST kommen.

    MfG, André Laugks

    1. Moin!

      In dem Du nur Variablen aufnimmt, die über POST kommen.

      *hüstel*

      Hier ein Ausschnitt aus der wget - Hilfe (wget --help):
      HTTP options:
             --http-user=USER      set http user to USER.
             --http-passwd=PASS    set http password to PASS.
             --ignore-length       ignore Content-Length' header field.        --header=STRING       insert STRING among the headers.        --referer=URL         include Referer: URL' header in HTTP request
        -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.
             --no-http-keep-alive  disable HTTP keep-alive (persistent connectio
             --cookies=off         don't use cookies.
             --load-cookies=FILE   load cookies from FILE before session.
             --save-cookies=FILE   save cookies to FILE after session.
             --post-data=STRING    use the POST method; send STRING as the data.
             --post-file=FILE      use the POST method; send contents of FILE.

      Deswegen wohl der Vorschlag mit der Session.

      MFFG (Mit freundlich- friedfertigem Grinsen)

      fastix®

      --
      Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
      1. Hallo!

        *hüstel*

        *hüstel*

        Hier ein Ausschnitt aus der wget - Hilfe (wget --help):

        wget...! Das ist nicht Dein Ernst, mit diesem Argument zu kommen...

        MfG, André Laugks

        1. Moin!

          Hier ein Ausschnitt aus der wget - Hilfe (wget --help):
          wget...! Das ist nicht Dein Ernst, mit diesem Argument zu kommen...

          Doch. Ja! Da stand:

          Ich möchte unter allen Umständen verhindern, dass jemand diese URL direkt aufruft. Man soll immer über suche.php geben, und dann das Formular von Hand ausfüllen müssen.

          Als einen dieser Umstände betrachte ich sehr wohl, daß jemand sich ein kleines skript schreibt welches die Webseite abfragt, die zurückgelieferten Daten gefiltert oder nicht mit einem Header versieht und weiterversendet.

          MFFG (Mit freundlich- friedfertigem Grinsen)

          fastix®

          --
          Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
          1. Hallo!

            Als einen dieser Umstände betrachte ich sehr wohl, daß jemand sich ein kleines skript schreibt welches die Webseite abfragt, die zurückgelieferten Daten gefiltert oder nicht mit einem Header versieht und weiterversendet.

            Du ziehst hier gerade etwas an den Haaren herbei...

            MfG, André Laugks

            --
            L-Andre @ gmx.de
  4. Hello,

    ich habe eine dynamische Datenbankabfrage per PHP. Nach dem Motto

    xyz.de/suche.php?variable1=x&variable2=y

    Ich möchte unter allen Umständen verhindern, dass jemand diese URL direkt aufruft. Man soll immer über suche.php geben, und dann das Formular von Hand ausfüllen müssen.

    FRAGE: Gibt es da irgendeine einfache Schutzidee?

    Ja

    ... method="post" ...

    <?php
      session_start();
      ...
    ?>

    oder

    <?php

    <form ...>
        <input type="hidden"
               name="code[form]"
               value="<?php echo formcode($oldFormCode) ?>">
        ...

    </form>

    Und wenn nun eine Anfrage auf suche.php kommt, dann muss ein gültiger Formcode drinstehen, auf den es noch keine Antwort gab.
    Wenn jemand mit einem bereits beantworteten Formcode oder ohne fragt, dann bekommt er nur wieder das Suchfenster mit der höflichen Aufforderung, das Programm bestimmungsgemäß zu benutzen. (könnte ja auch mal ein Übertagungsfehler auftreten)

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen