Archiv verlassen und diese Seite im Standarddesign anzeigen : Input HTML verbiten ?
Hi undzwar habe ich eine frage, in dem VMS ohne klammanbindung sind ja alle inputs ungesichert dort kann man ja HTML, PHP etc. ausführen drinn.
Nun meine Frage wie kann ich diese Inputs sichern das kein HTML oder PHP ausgeführt wird?
http://de.php.net/mysql_real_escape_string
z.b.
es kommt halt drauf an wo welches feld steht und was damit gemacht wird.
Es geht mir um diesen teil.
<? head("Nickpage"); ?>
<table border="0" width="600" id="table1">
<tr>
<td valign="top">
<table border="0" width="100%" id="table3">
<tr>
<td width="125"><b>User-ID</b></td>
<td>
<input type="text" value="<? echo $_SESSION[uid]; ?>" readonly name="T2" size="20" ></td>
</tr>
<tr>
<td width="125"><b>Nickname</b></td>
<td><input type="text" value="<? echo get_userdata('nickname', $_SESSION[uid]); ?>" readonly name="T3" size="20"></td>
</tr>
<tr>
<td width="125"><b>Vorname</b></td>
<td><input type="text" id="vorname" value="<? echo get_userdata('vorname', $_SESSION[uid]); ?>" name="T4" size="20">
<input id="C5" type="checkbox" <? echo get_userdata('show_vorname', $_SESSION[uid]); ?> name="C5" value="checked"> Sichtbar</td>
</tr>
<tr>
<td width="125"><b>Nachname</b></td>
<td><input type="text" value="<? echo get_userdata('nachname', $_SESSION[uid]); ?>" id="nachname" name="T5" size="20">
<input type="checkbox" <? echo get_userdata('show_nachname', $_SESSION[uid]); ?> id="C4" name="C4" value="checked"> Sichtbar</td>
</tr>
<tr>
<td width="125"> </td>
<td> </td>
</tr>
<tr>
<td width="125"><b>Homepage</b></td>
<td><input type="text" id="homepage" value="<? echo get_userdata('homepage', $_SESSION[uid]); ?>" name="T6" size="20">
<input type="checkbox" id="C1" <? echo get_userdata('show_homepage', $_SESSION[uid]); ?> name="C1" value="checked"> Sichtbar</td>
</tr>
<tr>
<td width="125"><b>Email</b></td>
<td><input type="text" id="email" value="<? echo get_userdata('email', $_SESSION[uid]); ?>" name="T7" size="20">
<input type="checkbox" id="C2" <? echo get_userdata('show_email', $_SESSION[uid]); ?> name="C2" value="checked"> Sichtbar</td>
</tr>
<tr>
<td width="125"><b>ICQ</b></td>
<td><input type="text" id="icq" value="<? echo get_userdata('icq', $_SESSION[uid]); ?>" name="T8" size="20">
<input type="checkbox" id="C3" <? echo get_userdata('show_icq', $_SESSION[uid]); ?> name="C3" value="checked"> Sichtbar</td>
</tr>
<tr>
<td width="125"> </td>
<td> </td>
</tr>
<tr>
<td width="125"> </td>
<td><p align="center"><a href="#" id="save_link" class="ui-state-default ui-corner-all"><span class="ui-icon ui-icon-newwin"></span>Daten ändern</a> <a href="#" id="dialog_link" class="ui-state-default ui-corner-all"><span class="ui-icon ui-icon-newwin"></span>Bild ändern</a></p></td>
</tr>
</table>
</td>
<td width="140" valign="top">
<div align="center">
<table border="0" width="140" id="table2">
<tr>
<td>
<DIV id="ergebnis">
<? if(!file_exists("images/avatare/".$_SESSION['uid'].".jpg")) { $url = '0'; } else { $url = $_SESSION['uid']; } ?>
<Center><img border="0" src="images/avatare/<? echo $url; ?>.jpg"></DIV></Center></p></td>
</tr>
<tr>
<td height="25px"></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
<? foot(); ?>
Ich habe null ahnung wie man diese Funktionen einsetzen tut.
Dieser Teil ist ja nur das HTML Formular, um die Eingaben zu validieren, musst du den Teil im PHP Code suchen, wo diese abgespeichert werden (db_query('UPDATE....)
In dieser Ausgabe kannst du ja die Funktion:
get_userdata()
schon mal so anpassen, dass diese nichts "böses" ausgibt.
Für die Eingaben bietet sich ja auch sowas an wie:
if(!ctype_digit($_POST['postleitzahl'])) die('Bei PLZ nur Zahlen!');
oder
if(!ctype_alpha($_POST['vorname'])) die('Komischer Vorname (bitte nur Buchstaben)');
usw:
http://www.php.net/manual/de/ref.ctype.php
http://www.php.net/manual/de/ref.strings.php
http://www.php.net/manual/de/ref.pcre.php
http://de.php.net/mysql_real_escape_string
z.b.
es kommt halt drauf an wo welches feld steht und was damit gemacht wird.
Diese Funktion dient ausschliessĺich dazu, um bestimmte Zeichen innerhalb Mysql-Querys unschädlich zu machen und ist kein Wunder-Heilmittel für jeden Zweck.
Richtig Escapen, bzw. "entschärfen" kannst du HTML-Code über htmlentities und ein gescheites Addslashes (ich zb. habe mir eine Funktion gebaut, wo ich mit Addslashes auch Mehrdimensionale Arrays behandeln kann ($data = pwcAddslashes($_POST);)
Dabei solltest du dir auch ein paar Gedanken darüber machen, ob du nur die Referenz der Variable oder wirklich alles Escapen willst.
Dann solltest du bestimmte Felder, wo zb. ein Datum erwartet wird, auch auf solches Prüfen (preg_match zb,. kann sowas sehr schnell und zuverlässig wie ein Auszug aus meiner "check.post.vars"-Klasse zeigt:
public function check_datum_start()
{
if (empty($this->value))
{
$this->post['error'][] = __ERROR_DATUM_START_FEHLT;
}
elseif (!preg_match('/^(([0-9]{2}+[\.]{1})+([0-9]{2}+[\.]{1})+([0-9]{4}))$/', $this->value))
{
$this->post['error'][] = __ERROR_DATUM_START_FALSCH;
}
}
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.