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 :(

387 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
121 ms — deklarationer (db)
126 ms — hämta statistik (db)
130 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)