Brauche hilfe bei Formular (noHTML eingabe)

VIPbanner_de

www.VIPbanner.de
ID: 72674
L
1 Mai 2006
2.598
150
habe ein problem.. und zwar bin ich betreiber eines besuchertausches und habe seit heute ein problem mit einem relativ kranken menschen der der meinung ist bei der anmeldung anstelle eines namens einen HTML Code einzugeben, der ein Bild mit toten menschen aufruft. Der User meldet sich an.. erscheint in der Neue User liste - nur das anstelle des namens dann dieses ekelhafte bild kommt. Ich habe das Formular schon so bearbeitet das maximal 20 zeichen möglich sind, nur denke ich mal das der user das über ein selbstgeschriebenes Formular einträgt, da er diese sperre umgehen kann und mehr wie 20 zeichen eingeben kann. Kann mir jemqand helfen das in diesem Formular kein HTML möglich ist?

Das ist eine ganz normale PHP seite in der man die Daten einträgt. Die Daten werden an eine weitere PHP Datei geschickt in der alle funktionen stehen und trägt schreibt die Daten in eine Datenbank. Der Teil sieht so aus:

PHP:
function account_add($name, $prename, $password, $email, $url, $showup, $points, $sid, $referer="", $refererb="", $refererc="", $refererd="", $referere="", $refererf="", $refererg="", $refererh="", $refereri="", $refererj="", $savepoints="")
{
        global $geld_ref, $geld_view;
	$query="SELECT count(*) FROM V4_accounts WHERE email='$email';";
	$result=mysql_query($query);

$a = date( "d.m.Y" );
$ip = $REMOTE_ADDR;
	if(mysql_result($result, 0)==0)
	{
		$query="INSERT INTO V4_accounts (name, prename, password, email, url, showup, points, sessionid, refererid, angemeldet, register_ip, referb, referc, referd, refere, referf, referg, referh, referi, referj, geld_ref, view_ref, savepoints) VALUES ('$name', '$prename', '$password', '$email', '$url', '$showup', '$points', '$sid', '$referer', '$a', '$ip', '$refererb', '$refererc', '$refererd', '$referere', '$refererf', '$refererg', '$refererh', '$refereri', '$refererj', '$geld_ref', '$geld_view', '1');";
		mysql_query($query);
		return true;
	}
	return false;
}

Weiß nicht ob ihr was damit anfangen könnt.. aber ich hoffe mal jemand weiß wie man html in einem Formular abstellen kann. ob es viel sinn macht das in meiner register.php abzustellen in der die daten eingegeben werden, wage ich zu bezweifeln wenn der unbekannte user die Daten über eine selbstgeschriebene Datei von seinem Webspace sendet.

Es handelt sich hierbei um folgende Seite: https://www.bettertraffic.de


*edit* es würde ja scho fast reichen wenn man in der datei nochmal prüfen würde ob es mehr wie 20 zeichen sind.. den mit 20 zeichen kann man nicht viel html mäßig machen
 
Zuletzt bearbeitet:
betterchat_de schrieb:
habe ein problem.. und zwar bin ich betreiber eines besuchertausches und habe seit heute ein problem mit einem relativ kranken menschen der der meinung ist bei der anmeldung anstelle eines namens einen HTML Code einzugeben, der ein Bild mit toten menschen aufruft. Der User meldet sich an.. erscheint in der Neue User liste - nur das anstelle des namens dann dieses ekelhafte bild kommt. Ich habe das Formular schon so bearbeitet das maximal 20 zeichen möglich sind, nur denke ich mal das der user das über ein selbstgeschriebenes Formular einträgt, da er diese sperre umgehen kann und mehr wie 20 zeichen eingeben kann. Kann mir jemqand helfen das in diesem Formular kein HTML möglich ist?

Das ist eine ganz normale PHP seite in der man die Daten einträgt. Die Daten werden an eine weitere PHP Datei geschickt in der alle funktionen stehen und trägt schreibt die Daten in eine Datenbank. Der Teil sieht so aus:

PHP:
function account_add($name, $prename, $password, $email, $url, $showup, $points, $sid, $referer="", $refererb="", $refererc="", $refererd="", $referere="", $refererf="", $refererg="", $refererh="", $refereri="", $refererj="", $savepoints="")
{
        global $geld_ref, $geld_view;
	$query="SELECT count(*) FROM V4_accounts WHERE email='$email';";
	$result=mysql_query($query);

$a = date( "d.m.Y" );
$ip = $REMOTE_ADDR;
	if(mysql_result($result, 0)==0)
	{
		$query="INSERT INTO V4_accounts (name, prename, password, email, url, showup, points, sessionid, refererid, angemeldet, register_ip, referb, referc, referd, refere, referf, referg, referh, referi, referj, geld_ref, view_ref, savepoints) VALUES ('$name', '$prename', '$password', '$email', '$url', '$showup', '$points', '$sid', '$referer', '$a', '$ip', '$refererb', '$refererc', '$refererd', '$referere', '$refererf', '$refererg', '$refererh', '$refereri', '$refererj', '$geld_ref', '$geld_view', '1');";
		mysql_query($query);
		return true;
	}
	return false;
}

Weiß nicht ob ihr was damit anfangen könnt.. aber ich hoffe mal jemand weiß wie man html in einem Formular abstellen kann. ob es viel sinn macht das in meiner register.php abzustellen in der die daten eingegeben werden, wage ich zu bezweifeln wenn der unbekannte user die Daten über eine selbstgeschriebene Datei von seinem Webspace sendet.

Es handelt sich hierbei um folgende Seite: https://www.bettertraffic.de


*edit* es würde ja scho fast reichen wenn man in der datei nochmal prüfen würde ob es mehr wie 20 zeichen sind.. den mit 20 zeichen kann man nicht viel html mäßig machen

Hi und Moin...
du kannst z.B.
PHP:
function account_add($name, $prename, $password, $email, $url, $showup, $points, $sid, $referer="", $refererb="", $refererc="", $refererd="", $referere="", $refererf="", $refererg="", $refererh="", $refereri="", $refererj="", $savepoints="")
{
   global $geld_ref, $geld_view;

   $name = substr($name, 0, 20); //Die ersten 20 Zeichen des Names nehmen
   $name = htmlspecialchars($name); //Sonderzeichen in HTML-Codes

   $query="SELECT count(*) FROM V4_accounts WHERE email='$email';";
   $result=mysql_query($query);

   $a = date( "d.m.Y" );
   $ip = $REMOTE_ADDR;
   if(mysql_result($result, 0) == 0)
   {
      $query="INSERT INTO V4_accounts (name, prename, password, email, url, showup, points, sessionid, refererid, angemeldet, register_ip, referb, referc, referd, refere, referf, referg, referh, referi, referj, geld_ref, view_ref, savepoints) VALUES ('$name', '$prename', '$password', '$email', '$url', '$showup', '$points', '$sid', '$referer', '$a', '$ip', '$refererb', '$refererc', '$refererd', '$referere', '$refererf', '$refererg', '$refererh', '$refereri', '$refererj', '$geld_ref', '$geld_view', '1');";
      mysql_query($query);
      return true;
   }
   return false;
}

Für "substr" siehe: https://de3.php.net/substr
Für "htmlspecialchars" siehe: https://de.php.net/htmlspecialchars

Das am einfachsten zu realisierende (ohne wirklich groß ahnung davon zu haben) und auch recht schnell...

auchw enn meienr meinung nach unsauber *gggg*


lg
Acid
 
Dann schau dir bitte auch das Thema SQL-Injektions an :!:
Nicht nur HTML-Code ist "böse", sondern auch SQL-Code-Eingaben im Formular, die nicht sauber gefiltert werden.

Hier im Forum findest du auch schon einiges zum Thema.
;)
 
also es scheint irgendwie nix gegen diesen SSJ Meister Joda zu helfen.. dieser Psyisch Kranke meldet sich immer wieder neu an und sobald er das macht erscheinen bei den "30 neusten Usern" Script meldungen wie z.B. " Beuge dich der macht von Meister SSJoda du unwürdiges Geschöpf) und es erscheinen wieder Bilder von zerfetzten Menschen im Hintergrund.....irgendwas gegen dieses psycho muss man doch tun können
 
betterchat_de schrieb:
[...]erscheinen bei den "30 neusten Usern" Script meldungen wie z.B. " Beuge dich der macht von Meister SSJoda du unwürdiges Geschöpf) und es erscheinen wieder Bilder von zerfetzten Menschen im Hintergrund.....
Ich seh nix ;)
Wenn du htmlspecialchars() verwendest, kann dir eigentlich nix passieren.