• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Sichere Übertragung von Variabeln

Crossfire

Neues Mitglied
Tag,

Ich habe mir ein Formular gebastelt (Formular.html) in dem man sein Namen eingeben kann.
Der Name der dann in einer Variable gespeichert ist, wird in der Datei Prozess.php wieder ausgegeben.

Mein Problem ist jetzt das ich man anstadt des Namens auch z.b ein html code eingeben kann - Sicherheitslücke.

Jetzt möchte ich Sowas verhindern und habe das stichwort "striptext" gehört.

Frage : Wie bau ich Striptext ein ?

Code von Formular.html
Code:
<form action="Prozess.php" method="post">
  <p>Vorname:<br><input name="Vorname" type="text" size="30" maxlength="30"></p>
  <p>Zuname:<br><input name="Nachname" type="text" size="30" maxlength="40"></p>

        <input type="submit" value=" Absenden ">
        <input type="reset" value=" Abbrechen">
</form>
Code von Prozess.php
PHP:
<?php
echo 'Willkommen ';
echo $_POST['Vorname'];
echo '<br>';
echo $_POST['Nachname'];
?>
Danke im Vorraus
 
htmlspecialchars wäre auch ausreichend, wenn die Seite als UTF-8 ausgeben wird, was zu empfehlen ist.

(Etwa per header('Content-Type: text/html; charset=UTF-8'); zu Beginn des Scripts vor der ersten HTML-Ausgabe.)

Gruß, Marc
 
Jo Danke das war es ;)

Die Lösung ;

Zitat von Supermax:

Die Funktion die du suchst heißt strip_tags(), in deinem Beispiel würdest du sie in der Process.php so einbauen:
PHP:
<?php
echo 'Willkommen ';
echo htmlspecialchars(strip_tags($_POST['Vorname']));
echo '<br>';
echo htmlspecialchars(strip_tags($_POST['Nachname']));
?>
Der zusätzliche Aufruf von htmlspecialchars() sorgt dafür, daß die Zeichen "<" ">" und einfache und doppelte Anführungszeichen in die entsprechenden HTML-Sequenzen &lt;, &gt; und &quot; umgewandelt werden, wenn der User diese in seinem Namen eingibt.
 
Zurück
Oben