Hallo,
es ist nicht gut, weil hier eine Benutzereingabe ungeprüft eingesetzt wird (zumindest sehen wir nicht, ob Sascha sich um eine Überprüfung Gedanken gemacht hat). Man kann also jeden beliebigen Sch*** als User-ID übergeben und so das Dokument kaputtmachen, aber auch fremden Code wie etwa Javascripts einschleusen.
Besser ist in jedem Fall, die User-ID gegen eine Liste (Tabelle) der erlaubten Werte zu prüfen und aus dieser Tabelle dann auch den Namen der zugehörigen CSS-Ressource oder sogar das Stylesheet an sich zu lesen.
ich habe mir mal Gedanken gemacht bezüglich Überprüfung, habe mir da auch ein paar Zeilen zusammengebastelt, allerdings weiss ich leider nicht ob das so im großen ganzen richtig ist bzw. ob ich noch etwas optimieren oder erweitern könnte? Vielleicht kann sich das jemand mal anschauen und mir gegegenfalls da etwas unter die Arme greifen? Wäre super, besten dank vorab.
So gehen wir mal von dem Beispiel:
http://example.org/daten/formular.php?userid=1234 aus.
Sprich URL-Parameter bzw. Variable wäre $userid ...
<?PHP
// Überprüfung ob userid-Variable in den möglichen Auswahlvariablen der einzelnen User vorkommt oder nicht
// Sprich existiert der User oder nicht?
$userid = array(
"user1" => 1234,
"user2" => 5678,
"user3" => 9012
);
$checked_userid = isset($userid[$_GET["select_userid"]]) ? $_GET["select_userid"] : "default";
// Überprüfung ob userid-Variable in numerischer Form vorliegt?
$checked_userid2 = isset($_GET["numeric_userid"]) ? $_GET["numeric_userid"]+0 : 0;
if ( "default" == $checked_userid ) {
echo "Sorry, Sie sind nicht berechtigt, diese Seite zu verwenden!";
} else if ( "0" == $checked_userid2 ) {
echo "Sorry, Sie verwenden keine zulässige User-ID ";
} else {
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"$userid.css\">";
}
?>
Könnte man vielleicht als dritte Überprüfung noch irgendwie überprüfen von welcher URL/Domain das ganze aufgerufen wird und dann irgendwie prüfen ob die Ausführung von dieser URL/Domain erlaubt ist oder nicht? Falls sowas geht, wie mache ich sowas und wie baue ich das ein? Danke für die Hilfe.
Viele Grüße
Sascha