加强跨站点脚本:糟糕的验证 JSF

Posted

技术标签:

【中文标题】加强跨站点脚本:糟糕的验证 JSF【英文标题】:Fortify Cross-Site Scripting: Poor Validation JSF 【发布时间】:2020-12-26 17:02:04 【问题描述】:

Fortify 在我的 JSF 2.2.1 / primefaces 项目中发现两行的跨站点脚本:验证不良安全问题。

<p:treeTable id="tree_dt" value="#OrganizasyonYetkinlikVeriGirisBean.root" var="organizasyon">
                            <p:column headerText="Ünite Adı" style="width:350px" filterBy="#organizasyon.uniteAdi" filterMatchMode="contains">
                                **<h:outputText value="#organizasyon.uniteAdi" escape="true"/>**
                            </p:column>

<p:treeTable id="tree_dt" value="#OrganizasyonYetkinlikVeriGirisBean.root" var="organizasyon">
                                <p:column headerText="Ünite Adı" style="width:25%" filterBy="#organizasyon.uniteAdi" filterMatchMode="contains">
                                    **<h:inputTextarea value="#organizasyon.uniteAdi" readonly="true" rows="2" escape="true"/>**
                                </p:column>

我已经隐式添加了 escape="true" 但是,问题仍然存在。

【问题讨论】:

【参考方案1】:

treeTable、column 和 inputTextArea 的 list of attributes 中都没有 escape

您的扫描仪可能没有指向正确的标记行,但可以查看正确的页面。查找其他对象以及具有可用转义属性的树表并将其设置为 true。

【讨论】:

我知道所有元素在 JSF 中都有隐式的 escape=true 属性。

以上是关于加强跨站点脚本:糟糕的验证 JSF的主要内容,如果未能解决你的问题,请参考以下文章

经典 ASP :: 跨站点脚本 (XSS) 验证不良问题

在 Java Web 项目中显示 BLOB 对象,避免持久的跨站点脚本?

跨站点脚本帮助?

防止来自静态站点的跨站点脚本攻击

通过 URL 进行跨站点脚本

如何防止跨站点脚本攻击