Die Include Methode

Die andere Methode geht im Prinzip genau andersherum vor: Hier wird ein zentrales Sicherheitsmodul angelegt, daß von jedem PHP Skript am Anfang eingebunden wird.

Hier ein Beispielskript (security.inc):

Zitat<?php
switch ($_POST['form'])
{
    case 'login':
        $allowed = array();
        $allowed[] = 'form';
        $allowed[] = 'username';
        $allowed[] = 'password';
        $sent = array_keys($_POST);
        if ($allowed == $sent)
        {
            include '/inc/logic/process.inc';
        }
        break;
}
?>

In diesem Beispiel wird für jedes gesendete Formular mit dem Namen 'form' schrittweise die Liste der gesendeten Parameter durchgegangen, eine Whitelist definiert die erlaubten Parameter. Sofern ein gesendeter Parameter als „erlaubt“ gekennzeichnet ist, wird das Skript „process.inc“ geladen.

Im folgenden nun ein Musterformular,das von dem Skript genutzt werden könnte:

Zitat<form action="/receive.php" method="POST">
<input type="hidden" name="form" value="login" />
<p>Username:
<input type="text" name="username" /></p>
<p>Password:
<input type="password" name="password" /></p>
<input type="submit" />
</form>

Ein Array $allow zählt die erlaubten Parameter auf und nur wenn die erlaubten Parameter mit den gesendeten übereinstimmen wird das Formular verarbeitet. Die Kontrolle findet bei diesem Verfahren an verschiedenen Orten statt, die endgültige Prüfung aber immer in der security.inc


Netzwerke

Blogroll