TomIRL: Sicherheit von Formularen

Moin,
Seit ein paar Stunden testet jemand mein selbstgeschriebende GB Skript auf Sicherheitslücken.
Anfänglich hat mich das ein wenig amüsiert, ich bin mir eigentich ziemlich sicher das ich alles Menschenmögliche getan habe um Mißbrauch zu vermeiden. Da der ganze Spuk nicht aufhört habe ich das Skript jetzt zunächst offline genommen und will mir nochmals ansehen ob ich wirklich alles berücksichtigt habe.
Dazu suchte ich einen IMHO nach vorhandenen Beitrag (Tips und Tricks oder aber Features) von ich glaube Fastix zum Thema.
Nur kann Ich Ihn nicht finden.
Kann mir jemand mit einem Link aushelfen?

TomIRL

  1. Hallo TomIRL,

    hast Du denn schon mal ein Logging für das Formular aktiviert, sodass man sich die Versuche ansehen kann?

    LG
    Chris

    1. Moin,

      hast Du denn schon mal ein Logging für das Formular aktiviert, sodass man sich die Versuche ansehen kann?

      Wie meinst Du das?
      Die Serverlogs laufen automatisch mit.
      Wie könnte ich ein loggin aktivieren?
      TomIRL

      1. Hallo,

        hast Du denn schon mal ein Logging für das Formular aktiviert, sodass man sich die Versuche ansehen kann?

        Wie meinst Du das?
        Die Serverlogs laufen automatisch mit.
        Wie könnte ich ein loggin aktivieren?

        Indem Du im Script ein Wegschreiben der Header, POST, GET und Cookies vorsiehst. Das kannst Du abhängig machen von einer PHP-Environment-Variable, die Du mittels .htaccess oder VirtHost-Conf setzt.

        Die Kontrollen können also später drinbleiben. Der Overhead ist minimal.

        Das Server-Log wird diese Daten vermutlich nicht sichern können.

        LG
        Chris

      2. Huhu Tom,

        Wie könnte ich ein loggin aktivieren?

        hier ein ganz einfaches Skript das ich mal bei so einer Formspam Belästigung
        eingebunden habe.
        Vielleicht kannst Du das für Deine Zwecke verwenden.

        <?php

        function log_request ($log_this, $log_file='log_request.txt')
        {
            if (empty ($log_this) || !is_array($log_this)) {
                return false;
            }

        $defaults = array(

        'TIMESTAMP'    => date('Y-m-d H:i:s',time()),
        'IP'              => $_SERVER['REMOTE_ADDR'],
        'HTTP_REFERER'    => $_SERVER['HTTP_REFERER'],
        'HTTP_USER_AGENT' => $_SERVER['HTTP_USER_AGENT'],

        );

        $line = '';

        $keys = array_merge (array_keys($defaults), array_keys($log_this));

        $line = join(';',$keys).chr(13);

        $vals = array_merge ($defaults, $log_this);

        $line .= join(';',$vals).chr(13);

        $fp = fopen($log_file,'a+');
            fwrite($fp, $line);
            fclose($fp);
            return true;
        }

        log_request($_POST,'postspam.txt');
        log_request($_GET,'getspam.txt');
        ?>

        Viele Grüße

        lulu

        --
        bythewaythewebsuxgoofflineandenjoytheday