Textarea veilig

  • Onderwerp starter Onderwerp starter baws
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

baws

Terugkerende gebruiker
Lid geworden
9 apr 2010
Berichten
1.258
Hallo.

Ik wil via een textarea mijn database updaten.
Hoe zorg ik ervoor de dat string veilig verwerkt wordt, dus dat ik ' als tekst kan invoeren ik heb nu:

PHP:
$veld1 = $db->real_escape_string($_POST['veld1']);
		if ($veld1 != null)
		{
			$query = "UPDATE paginas   
			SET paginaTekst = '$veld1' WHERE paginaId = 1";
			$db->query($query);
			echo $query;

		}

Het wordt uitgevoerd maar als ik gevaarlijke tekens gebruik gaat het fout, ik dacht dat real escape string het veilig maakte of ligt het aan het ophalen van de tekst?
 
Defineer "gevaarlijke tekens", wat voer je in en wat komt er uit?
 
ik voer bijvoorbeeld in 'test ''as'df asdf á sdf a'ds en dan worden alle ' veranderd naar \'
 
Dat klopt ook, dat is wat real_escape_string() namelijk doet.
 
Dit is een veelvoorkomend probleem en de oplossing is eenvoudig:
1. Zet via .htaccess of via php.ini botweg de hele magic-quotes uit. Alles, gewoon helemaal uit. Er is niets in PHP wat gebruik maakt van magic-quotes.
2. Bij het invoeren pas je real_escape_string toe, en *nergens* anders. Gebruik ook niets anders dan de real_escape functie (of equivalent van andere databases).
3. Bij het uitlezen doe je helemaal niets bijzonders met de data, want bij het uitlezen kan er niets mis gaan.

Als je in de database een slash ziet staan voor een quote, dan heb je dubbel ge-escaped en dat komt meestal doordat magic-quotes nog aan staat. De slash staat namelijk alleen in de query om aan de queryparser te laten weten dat de quote geen onderdeel is van de syntax maar van de inhoud van de string.
 
Hoe kan ik ervoor zorgen dan dat wat ik invoer geen / bevat behalve de magic quotes uit zetten.
 
Hoe kan ik ervoor zorgen dan dat wat ik invoer geen / bevat behalve de magic quotes uit zetten.

IK begrijp je vraag niet, magic-quotes uitzetten is alles wat je hoeft te doen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan