我有cq 5.5项目。
我想防止XSS攻击。
根据此link 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
答案 0 :(得分:5)
CQ提供的XSS保护机制已基于AntiSamy项目。您只需提供自定义的反恶意配置,以防默认配置不符合您的需求。
默认的antisamy配置位于/libs/cq/xssprotection/config.xml
,可以与/apps
内的自定义配置重叠。
您可以使用CQ中提供的XSS Protection 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);
您可以找到一些预定义的策略文件和步骤来创建新配置here。
<强>更新强>
如果您不想使用XSS API,则需要在实例中安装owasp esapi包,然后您可以使用问题中提到的代码。