Netti: $GLOBALS / Sicherheit / globale Variable

Beitrag lesen

Früher, als wir noch register_globals hatten, da war das wirklich ein Problem bei unsauberer Programmierweise. Sprich: Wenn man Variablen vor der Erstbenutzung keinen definierten Wert zuwies, sondern das System machen lies. Beides zusammen konnte Variablen ungewünscht vorbelegen.

ok, das war es DANKE !!! habe das letzte mal vor 8 Jahren programmiert ... bzw. diese Forum aktiv genutzt
das ist eine Ewigkeit von der Steinzeit in die Neuzeit

Jein. Wenn man die üblichen Lücken sucht, findet man leider viele davon, ohne irgendwelchen Code zu kennen. Injections aller Art und missbrauchbare Mailformulare stehen da ganz oben auf der Liste. Also, zumindeste denke ich mir das, aufgrund der Häufigkeit mit der ich solche Fehler sehe.

Hm, Habe mich für HTMLPurifier entschieden um Benutzereingaben zu validieren GET und POST laufen mit regex oder $id = intval($_GET['id']);

Bleiben noch die Bilder...

			$finfo = @finfo_open(FILEINFO_MIME_TYPE);	// Gib den MIME Typ zurueck
			if ($finfo !== FALSE && !empty($finfo) > 0){
				$dateiformat = @finfo_file($finfo, $_FILES['file']['tmp_name']);
				@finfo_close($finfo);
			}
			else
			{
				@header("HTTP/1.0 440 (Fehler Nr. 102)");
				exit('Error: Fehler Nr. 102');
			}

meine Ajax Lösung:

 function check_spam_user()
{
	if(empty($_SESSION['TIME']) or !preg_match("/^[0-9]*$/", $_SESSION['TIME']))
	{
		if($_SESSION['TIME']< 1)
		{
			return 1;
		}
	}

	if(!preg_match("/^[a-zA-Z0-9\.-]*$/",$_SERVER["HTTP_HOST"]))
	{
		return 2;
	}

	if(strpos($_SERVER["HTTP_HOST"],$_SERVER["SERVER_NAME"]) === false)
	{
		return 3;
	}

	if(strpos($_SERVER["HTTP_REFERER"],$_SERVER["SERVER_NAME"]) === false)
	{
		return 4;
	}

	if(!$_SERVER["REQUEST_METHOD"])
	{
		return 5;
	}

	if(empty($_SESSION) OR !preg_match("/Benutzername/",  strip_tags(@implode(",", array_keys($_SESSION)))))
	{
		return 6;
	}
}
  

if(check_spam_user())
{
	header("HTTP/1.0 440 (Fehler Nr. 100)");
	exit('Error: Fehler Nr. 100');
}
  

Ob es reicht werde ich sehen