<html><body bgcolor="#FFFFFF"><div>August,</div><div><br></div><div>This is a stellar contribution, thank you!!!<br><br>Jim Manico</div><div><br>On Jan 8, 2010, at 2:00 PM, August Detlefsen &lt;<a href="mailto:augustd@codemagi.com">augustd@codemagi.com</a>&gt; wrote:<br><br></div><div></div><blockquote type="cite"><div>

Thanks Arshan, <br>
<br>
I basically took the same approach and added "a" to the
allowedEmptyTags. I am glad to hear that you added this to the next
version. <br>
<br>
I also added "area" to allow for image maps -Is there a vulnerability
associated with these? <br>
<br>
In looking at the source code that uses allowedEmptyTags, it seems to
me that (at least in Java) using a HashSet would provide better lookup
performance than iterating the array. It can be rewritten as: <br>
<br>
&nbsp;&nbsp;&nbsp; private static final HashSet&lt;String&gt; allowedEmptyTags = new
HashSet&lt;String&gt;(19);<br>
&nbsp;&nbsp;&nbsp; static {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //be sure to use lower case for tag names<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allowedEmptyTags.add("a");<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allowedEmptyTags.add("area");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ...<br>
&nbsp;&nbsp;&nbsp; }<br>
<br>
And in recursiveValidateTag: <br>
<br>
boolean isEmptyAllowed =
allowedEmptyTags.contains(node.getNodeName().toLowerCase());<br>
<br>
I ran a quick test and using a HashSet is about 35% faster than using
an array, even accounting for equalsIgnoreCase() vs toLowerCase(). <br>
<br>
Regards,<br>
August<br>
<br>
<br>
On 1/8/10 2:57 PM, Arshan Dabirsiaghi wrote:
<blockquote cite="mid:B9A412898630124ABE8350F4EBD32E84F439E8@mymail.aspectsecurity.com" type="cite">
  
  
  
  <div dir="ltr" id="idOWAReplyText89190">
  <div dir="ltr"><font face="Arial" size="2" color="#000000">There is
no associated vulnerability, and no way to change it without
recompilation. This whole mess was introduced because of the browser
bug (feature) associated with this issue:</font></div>
  <div dir="ltr">&nbsp;</div>
  <div dir="ltr"><a moz-do-not-send="true" href="http://code.google.com/p/owaspantisamy/issues/detail?id=36"><a href="http://code.google.com/p/owaspantisamy/issues/detail?id=36">http://code.google.com/p/owaspantisamy/issues/detail?id=36</a></a></div>
  <div dir="ltr">&nbsp;</div>
  <div dir="ltr"><font face="Arial" size="2" color="#000000">I added
"a" to the allowed-to-be-empty-list in svn so it will be in the next
version, which should be rolled out really, really soon.</font></div>
  <div dir="ltr">&nbsp;</div>
  <div dir="ltr"><font face="Arial" size="2">Arshan</font></div>
  </div>
  <div dir="ltr"><br>
  <hr tabindex="-1">
  <font face="Tahoma" size="2"><b>From:</b>
<a class="moz-txt-link-abbreviated" href="mailto:owasp-antisamy-bounces@lists.owasp.org"><a href="mailto:owasp-antisamy-bounces@lists.owasp.org">owasp-antisamy-bounces@lists.owasp.org</a></a> on behalf of August Detlefsen<br>
  <b>Sent:</b> Fri 1/8/2010 5:19 PM<br>
  <b>To:</b> <a class="moz-txt-link-abbreviated" href="mailto:owasp-antisamy@lists.owasp.org"><a href="mailto:owasp-antisamy@lists.owasp.org">owasp-antisamy@lists.owasp.org</a></a><br>
  <b>Subject:</b> [Owasp-antisamy] 'A' tag with no children<br>
  </font><br>
  </div>
  <div>
  <p><font size="2">I ran into this issue with AntiSamy:<br>
  <br>
Within the HTML I was validating was an A tag being used as an in-page<br>
anchor:<br>
  <br>
&lt;a name="anchor"&gt;&lt;/a&gt;<br>
  <br>
And AntiSamy complains:<br>
  <br>
The a tag was empty, and therefore we could not process it. The rest of<br>
the message is intact, and its removal should not have any side effects.<br>
  <br>
I found the array containing the list of valid child-less tags (like<br>
IMG, HR, BR, etc) in AntiSamyDOMScanner.java, and it would be easy to<br>
add A there, but my question for you is:<br>
  <br>
Is there a vulnerability associated with an empty A tag that is keeping<br>
it off that list? Is there some way to configure the allowed empty tags<br>
in the policy file, without recompiling the source code?<br>
  <br>
Thanks,<br>
August<br>
  <br>
--<br>
August Detlefsen<br>
CEO/Web Application Architect<br>
CodeMagi, Inc.<br>
  <a moz-do-not-send="true" href="http://www.codemagi.com/"><a href="http://www.codemagi.com">http://www.codemagi.com</a></a><br>
  <br>
_______________________________________________<br>
Owasp-antisamy mailing list<br>
<a class="moz-txt-link-abbreviated" href="mailto:Owasp-antisamy@lists.owasp.org"><a href="mailto:Owasp-antisamy@lists.owasp.org">Owasp-antisamy@lists.owasp.org</a></a><br>
  <a moz-do-not-send="true" href="https://lists.owasp.org/mailman/listinfo/owasp-antisamy"><a href="https://lists.owasp.org/mailman/listinfo/owasp-antisamy">https://lists.owasp.org/mailman/listinfo/owasp-antisamy</a></a><br>
  </font></p>
  </div>
</blockquote>
<br>
<pre class="moz-signature" cols="72">-- 
August Detlefsen
CEO/Web Application Architect
CodeMagi, Inc. 
510-368-4489 tel
510-336-9434 fax
<a class="moz-txt-link-freetext" href="http://www.codemagi.com"><a href="http://www.codemagi.com">http://www.codemagi.com</a></a></pre>


</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>Owasp-antisamy mailing list</span><br><span><a href="mailto:Owasp-antisamy@lists.owasp.org">Owasp-antisamy@lists.owasp.org</a></span><br><span><a href="https://lists.owasp.org/mailman/listinfo/owasp-antisamy">https://lists.owasp.org/mailman/listinfo/owasp-antisamy</a></span><br></div></blockquote></body></html>