Plocka bort attribut från htmlkod

PHP

1 svar · 210 visningar · startad av Peeer

Medlem sedan mars 20025 907 inlägg
Trådstart#1

Har nedanstående funktioner för att rensa bort htmlkod (inkl. ev. attribut) från en sträng. Den fungerar fint, fast jag vill ändra en sak. Nu måste jag ange de attribut jag vill ska vara otillåtna, jag vill göra tvärtom (dvs. anger de attribut som ska vara godkända (precis som strip_tags fungerar mao)). Någon som vet hur jag modifierar koden så att den fungerar så?

function removeEvilTags($source){
	$allowedTags = '<b><h1><span>';
	$source = strip_tags($source, $allowedTags);
	return preg_replace('/<(.*?)>/ie', "'<'.removeEvilAttributes('\\1').'>'", $source);
}

function removeEvilAttributes($tagSource){
	$stripAttrib = "' (javascript:|onclick|ondblclick|onmousedown|onmouseup|" . 
		"onmouseover|onmousemove|onload|onmouseout|onkeypress|".
		"onkeydown|onkeyup)(\s*)=(\s*)(\"|\')(.*?)(\"|\')'i";
	$tagSource = stripslashes($tagSource);
	$tagSource = preg_replace($stripAttrib, '', $tagSource);
	return $tagSource;
}
Medlem sedan mars 20025 907 inlägg
#2

Det var nog svårt det här :(

382 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
124 ms — deklarationer (db)
120 ms — hämta statistik (db)
135 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)