我遇到了Wygwam和Safecracker的问题。当我为一个字段扩展Wygwam配置(比如添加font-color),然后在Safecracker中的字段上使用该选项时,HTML似乎被剥离了,如下所示:
而不是这样:
<p>
<span style="color:#ff0000;"><span style="font-size:16px;"><span style="font-family:georgia,serif;">Why aren't you saving???</span></span></span></p>我得到了这个(在提交之后):
<p>
<span><span><span new,courier,monospace;"="">Why aren't you saving???</span></span></p>我确定这是由于Safecracker中的XSS过滤造成的,有什么好的解决方案来解决这个问题吗?我使用的是Wygwam的2.6.3和EE 2.5.3 (Safecracker 2.1)。
发布于 2012-11-07 07:17:11
看一下system/expressionengine/modules/safecracker/libraries/safecracker_lib.php的1281行,你会看到:
//@TODO what to do about xss_clean and "naughty" html
//for now you can crack open this file and manually add fields_ids and/or field types to the respective arrays
//to prevent xss_clean
//i had some people complain about not being able to submit <object>'s
$xss_clean = ( ! in_array($field['field_id'], $this->skip_xss_field_ids) && ! in_array($field['field_type'], $this->skip_xss_fieldtypes));这个数组似乎是专门用来帮助您的情况的(希望跳过安全黑客字段上的XSS过滤)。
该数组在同一文件的第2612行附近初始化:
$this->skip_xss_field_ids = array();因此,您应该能够简单地将字段ID添加到此数组中,以跳过XSS过滤,如下所示:
$this->skip_xss_field_ids = array(37, 81);请记住,这是一个非常非常糟糕的想法的。在这一点上,用户现在可以在他们的wygwam字段中添加任意的javascript,你已经有效地向XSS attacks开放了你的网站(恶意用户可以劫持其他用户的会话并做他们想做的任何事情)。
发布于 2012-11-07 09:54:32
禤浩焯说的都是对的。但是,如果您不允许访客通过此表单发布内容,并且它只针对经过批准的注册用户,那么XSS威胁就会减轻。实际上,当您在CP中提交条目时,字段不会传递给XSS过滤器。
发布于 2012-11-07 19:15:52
如果你将"removeFormatAttributes“设置应用于你的Wygwam配置,它将去掉样式属性(以及其他属性)。
转到Add-ons -> Modules -> Wygwam,然后单击要用于相关字段的配置集。在那里,您可以选择各种设置来影响该设置的工作方式。
https://stackoverflow.com/questions/13260563
复制相似问题