如何逃避/内联/欺骗在XWiki中绕过<style>标签过滤?

时间:2018-04-06 21:43:13

标签: html css xwiki

我正在使用XWiki的一个实例来过滤&lt; style&gt; 标记,这意味着以下内容:

&#xA;&#xA;
 &LT;风格&GT;&#XA; p {颜色:红色; }&#XA;&LT; /风格&GT;&#XA;&#XA;&LT; p为H.富&LT; / P&GT;&#XA;  
&#XA;&#XA;

在渲染时会完全删除&lt; style&gt; 标记,只会产生:

&#xA;&#xA;
 &lt; p&gt; Foo&lt; / p&gt; ;&#xA;  
&#xA;&#xA;

我可以使用以下语法执行内联样式:

&#xA;&#xA; < pre> (%style =“color:red;”%)&#xA;&lt; p&gt; Foo&lt; / p&gt;&#xA; &#xA;&#xA;

但是当我尝试使用动画关键帧时,我的问题就出现了。我知道他们可以在样式标签内完成:

&#xA;&#xA;
 &lt; style&gt;&#xA; @keyframes stomp {&#xA; 0%{transform:translate(1px,1px)rotate(0deg); }&#XA; 50%{transform:translate(-1px,2px)rotate(1deg); }&#XA; 100%{transform:translate(1px,-2px)rotate(-1deg); }&#xA;}&#xA;&lt; / style&gt;&#xA;  
&#xA;&#xA;

但我不知道如何内联,因为XWiki将删除&lt; style&gt; 标记。

&#xA;&#xA;

我的问题:我如何...

&# xA;&#xA;
    &#xA;
  1. 将关键帧内联到元素样式中(我不相信这可以做到,但这个问题已经很老了?”
  2. &#xA;
  3. 模糊&lt; style&gt; 标签,以便它不被剥离?
  4. &#xA;
&#xA;

1 个答案:

答案 0 :(得分:0)

样式标记不应该放在HTML的主体中(至少不在HTML4中)。您在维基页面内容中的{{html}}宏内插入的所有HTML都会进入HTML的正文。这就是为什么HTML清除器可能会过滤/删除您的内容。

您应该通过JavaScriptExtensionsStyleSheetExtensions查看并了解在XWiki中向您的Wiki页面添加JavaScript和CSS的正确方法。更一般地说,尽量避免内联。它被认为是一种不好的做法,在实践中几乎没有理由。

如果您确实必须在HTML正文中包含样式标记,则可以指示{{html}}宏以避免使用clean="false" parameter进行自动清理。

示例:

{{html clean="false"}}
<style>
  ...
</style>
{{/html}}

但是,我建议您仅将上述内容用于测试目的,并为最终版本使用正确的JavaScript / Style Extensions。