Matthias Apsel: Frage zu htmlentities in href-Attributen

Beitrag lesen

Om nah hoo pez nyeetz, Volker!

<?php

$_GET['a'] = 'javascript:alert(document.cookie)';
$href = htmlEntities($_GET['a'], ENT_QUOTES);
print "<a href='$href'>link</a>"; # results in: <a href='javascript:alert(document.cookie)'>link</a>
?>


>   
> Jetzt stellt sich mir die Frage wie ich das verhindern kann.  
> Wie kodiere ich einen String so, dass er als URL (href) in einem Link nicht verstümmelt wird aber auch kein Schaden angerichtet werden kann?  
  
Das geht nicht. Wenn du die Ausführung von JavaScript mittels href-Attribut verhindern möchtest, musst du "javascript" aus dem Attribut entfernen, es also verstümmeln. Du könntest allerdings auch den Link überhaupt nicht ausgeben, wenn er "javascript" enthält. Dann hast du ndas Attribut ebenfalls verstümmelt, und zwar so doll, dass nichts mehr von ihm übrig ist.  
  
Matthias

-- 
Der Unterschied zwischen Java und JavaScript ist größer als der zwischen [Bache und Bachelor](http://selfhtml.apsel-mv.de/java-javascript/index.php?buchstabe=B#bache).  
![](http://www.billiger-im-urlaub.de/kreis_sw.gif)