3

我有 cq 5.5 项目。

我想防止 XSS 攻击。

根据此链接cq 提供与 AntiSamy 项目的集成。

请提供与 AntiSamy 集成的具体步骤,因为我真的找不到它。

更新

我应该在某处写这样的代码吗?

import org.owasp.validator.html.*;

Policy policy = Policy.getInstance(POLICY_FILE_LOCATION);

AntiSamy as = new AntiSamy();
CleanResults cr = as.scan(dirtyInput, policy);

MyUserDAO.storeUserProfile(cr.getCleanHTML()); // some custom function
4

1 回答 1

5

CQ 提供的 XSS 保护机制已经基于 AntiSamy 项目。您只需要提供您的自定义 antisamy 配置,以防默认配置不适合您的需求。

默认的 antisamy 配置存在于 中/libs/cq/xssprotection/config.xml,它可以与您的自定义配置重叠在/apps.

您可以利用 CQ 中提供的 XSS 保护 API 来保护您的网站免受安全攻击。XSSAPI和XSSFilter类提供各种方法来验证给定值。

xssAPI可以作为包含 的隐式对象使用,/libs/foundation/global.jsp而 XSSFilter 可以如下所示获取和使用。

XSSFilter xssFilter = sling.getService(XSSFilter.class);
String filteredString = xssFilter.filter(ProtectionContext.HTML_HTML_CONTENT,
                            dirtyInput, POLICY_FILE_LOCATION); 

您可以在此处找到一些预定义的策略文件和创建新配置的步骤。

更新:

如果您不想使用 XSS API,那么您需要在您的实例中安装 owasp esapi 包,然后您可以使用问题中提到的代码。

于 2014-07-17T10:55:04.123 回答