我正在使用Hybris CMS Cockpit(仅作为用户,而不是管理员),我已经构建了一个包含内容插槽的页面。
但是我试图在页面中插入一些JavaScript。我无法看到我的意思是不添加JavaScript并且我尝试了内联<script>
标记,但它们只是被剥离并转向纯文本。
有人知道这是否可行,还是我必须要求系统管理员启用某些功能?
答案 0 :(得分:3)
您可以添加javascript,但是您必须让开发人员对要添加javascript的环境的配置文件(local.properties)进行一些覆盖。
设置为:
xss.filter.rule.script_fragments=
xss.filter.rule.lonely_script_tags=
xss.filter.rule.lonely_script_tags2=
xss.filter.rule.javascript=
通过这样做,系统将不再剥离这些标签:)
答案 1 :(得分:1)
伤寒马蒂是正确的,但要扩展他的答案:
Hybris Cross Site Scripting(XSS)过滤器正在删除您的脚本标签。
您可能只想为用户编辑网站的扩展程序禁用它,特别是CMSCockpit,HMC和HAC:
if (!strcmp(dispatch_queue_get_label(DISPATCH_CURRENT_QUEUE_LABEL), dispatch_queue_get_label(myDispatchQueue)){
printf("Booyah!\n");
}
您可以在此处的文档中找到XSS过滤器的更多配置选项: https://wiki.hybris.com/display/release5/Web+Security+XSS+Filter
答案 2 :(得分:0)
@Typhoid Marty和@kabadisha建议的答案将解决此问题。在此处添加另一个解决方法。即使xss过滤器配置为xss.filter.enabled=true
,也可以将脚本添加到组件的内容中。
这可以通过为组件创建一个impex并通过hac作为脚本将其“启用代码执行”检查为true导入来实现。
答案 3 :(得分:-1)
以下是一个例子:
<script type="text/javascript">
function myFunction()
{
document.body.style.backgroundColor="lavender";
<!-- document.write(Date()); -->
alert(document.getElementById("hai"));
}
</script>
事实上,Hybris驾驶舱使用ZK框架,观点是&#34; .zul&#34;文件。