我使用Java OWASP HTML Sanitizer(HtmlPolicyBuilder
)来清理我的网络应用中呈现的HTML,由第三方服务提供。
使用一些开箱即用的选项,我注意到public class DisplayPanel extends JFrame {
public DisplayPanel(Object[][] rowData, Object[] columnNames) {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTable table = new JTable(rowData, columnNames);
JScrollPane scrollPane = new JScrollPane(table);
this.add(scrollPane, BorderLayout.CENTER);
this.setSize(300, 150);
// this.setVisible(true); this line should probably be called by the caller class now
}
}
标签已被删除。我知道我可以将它们包含在<form>
中,但是有充分的理由不允许表单吗?
在我的网站上呈现其他&#39; 表单时,我应该考虑哪种XSS攻击?
供参考,我的消毒政策是:
allowElements("form")
答案 0 :(得分:1)
一个例子是网络钓鱼。显示用户名/密码表单,将操作参数指向攻击者的Web服务器,并诱使用户相信他们需要重新进行身份验证。此外,如果用户自动填写,则表单可以自动填写用户名/密码详细信息。
答案 1 :(得分:1)
Sean指出,有人可以成功地从用户那里获取一些信息。 要添加更多信息,只使用那些固定方法,您将拥有一个非常有限的白名单,但也许这就是您想要的。
您允许的元素是:
&#34; b&#34;,&#34; i&#34;,&#34; font&#34;,&#34; s&#34;,&#34; u&#34;,&# 34; o&#34;,&#34; sup&#34;,&#34; sub&#34;,&#34; ins&#34;,&#34; del&#34;,&#34; strong&#34 ;,&#34;罢工&#34;,&#34; tt&#34;,&#34;代码&#34;,&#34;大&#34;,&#34;小&#34;,&#34 ; br&#34;,&#34; span&#34;,&#34; em&#34;,&#34; p&#34;,&#34; div&#34;,&#34; h1&#34; ,&#34; h2&#34;,&#34; h3&#34;,&#34; h4&#34;,&#34; h5&#34;,&#34; h6&#34;,&#34; ul&#34;,&#34; ol&#34;,&#34; li&#34;,&#34; blockquote&#34;。
allowStyling只允许全局样式属性。 allowStandardUrlProtocols允许网址包含&#34; http&#34;,&#34; https&#34;,&#34; mailto&#34;协议,无论你在哪里引用网址(a:href img:src q:引用等等),但你不允许任何这些元素或属性,所以它基本上没用。
您可能希望花时间在网上查看示例白名单(不仅仅是OJHS),以了解常用元素&amp;属性可以更好地发展您的白名单。