1 <HTML> 2 <BODY BGCOLOR="white"> 3 <PRE> 4 <FONT color="green">001</FONT> // Copyright (c) 2011, Mike Samuel<a name="line.1"></a> 5 <FONT color="green">002</FONT> // All rights reserved.<a name="line.2"></a> 6 <FONT color="green">003</FONT> //<a name="line.3"></a> 7 <FONT color="green">004</FONT> // Redistribution and use in source and binary forms, with or without<a name="line.4"></a> 8 <FONT color="green">005</FONT> // modification, are permitted provided that the following conditions<a name="line.5"></a> 9 <FONT color="green">006</FONT> // are met:<a name="line.6"></a> 10 <FONT color="green">007</FONT> //<a name="line.7"></a> 11 <FONT color="green">008</FONT> // Redistributions of source code must retain the above copyright<a name="line.8"></a> 12 <FONT color="green">009</FONT> // notice, this list of conditions and the following disclaimer.<a name="line.9"></a> 13 <FONT color="green">010</FONT> // Redistributions in binary form must reproduce the above copyright<a name="line.10"></a> 14 <FONT color="green">011</FONT> // notice, this list of conditions and the following disclaimer in the<a name="line.11"></a> 15 <FONT color="green">012</FONT> // documentation and/or other materials provided with the distribution.<a name="line.12"></a> 16 <FONT color="green">013</FONT> // Neither the name of the OWASP nor the names of its contributors may<a name="line.13"></a> 17 <FONT color="green">014</FONT> // be used to endorse or promote products derived from this software<a name="line.14"></a> 18 <FONT color="green">015</FONT> // without specific prior written permission.<a name="line.15"></a> 19 <FONT color="green">016</FONT> // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS<a name="line.16"></a> 20 <FONT color="green">017</FONT> // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT<a name="line.17"></a> 21 <FONT color="green">018</FONT> // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS<a name="line.18"></a> 22 <FONT color="green">019</FONT> // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE<a name="line.19"></a> 23 <FONT color="green">020</FONT> // COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,<a name="line.20"></a> 24 <FONT color="green">021</FONT> // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,<a name="line.21"></a> 25 <FONT color="green">022</FONT> // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;<a name="line.22"></a> 26 <FONT color="green">023</FONT> // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER<a name="line.23"></a> 27 <FONT color="green">024</FONT> // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT<a name="line.24"></a> 28 <FONT color="green">025</FONT> // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN<a name="line.25"></a> 29 <FONT color="green">026</FONT> // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE<a name="line.26"></a> 30 <FONT color="green">027</FONT> // POSSIBILITY OF SUCH DAMAGE.<a name="line.27"></a> 31 <FONT color="green">028</FONT> <a name="line.28"></a> 32 <FONT color="green">029</FONT> package org.owasp.html;<a name="line.29"></a> 33 <FONT color="green">030</FONT> <a name="line.30"></a> 34 <FONT color="green">031</FONT> import javax.annotation.Nullable;<a name="line.31"></a> 35 <FONT color="green">032</FONT> <a name="line.32"></a> 36 <FONT color="green">033</FONT> /**<a name="line.33"></a> 37 <FONT color="green">034</FONT> * Receives events when an HTML tag, or attribute is discarded.<a name="line.34"></a> 38 <FONT color="green">035</FONT> * This can be hooked into an intrusion detection system to alert code when<a name="line.35"></a> 39 <FONT color="green">036</FONT> * suspicious HTML passes through the sanitizer.<a name="line.36"></a> 40 <FONT color="green">037</FONT> */<a name="line.37"></a> 41 <FONT color="green">038</FONT> public interface HtmlChangeListener<T> {<a name="line.38"></a> 42 <FONT color="green">039</FONT> <a name="line.39"></a> 43 <FONT color="green">040</FONT> /** Called when a tag is discarded from the input. */<a name="line.40"></a> 44 <FONT color="green">041</FONT> public void discardedTag(@Nullable T context, String elementName);<a name="line.41"></a> 45 <FONT color="green">042</FONT> <a name="line.42"></a> 46 <FONT color="green">043</FONT> /**<a name="line.43"></a> 47 <FONT color="green">044</FONT> * Called when attributes are discarded<a name="line.44"></a> 48 <FONT color="green">045</FONT> * from the input but the containing tag is not.<a name="line.45"></a> 49 <FONT color="green">046</FONT> */<a name="line.46"></a> 50 <FONT color="green">047</FONT> public void discardedAttributes(<a name="line.47"></a> 51 <FONT color="green">048</FONT> @Nullable T context, String tagName, String... attributeNames);<a name="line.48"></a> 52 <FONT color="green">049</FONT> }<a name="line.49"></a> 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 </PRE> 114 </BODY> 115 </HTML> 116