不允许使用eval()

时间:2012-10-23 17:46:43

标签: php javascript wordpress eval

我在wordpress主题中使用WPAlchemy MetaBox PHP类来处理一些自定义帖子类型。 运行主题检查时出现问题:

WARNING: Found eval in the file inc/metaboxes/MediaAccess.php. eval() is not allowed.. 
Line 375: data = eval('(' + (data.indexOf('{') < 0 ? '{' + data + '}' : data) + ')');

我不知道为什么会出现这种情况,因为第375行是JavaScript封装在:CDATA

请参阅以下摘自MediaAccess.php

// include javascript for special functionality
?><script type="text/javascript">
/* <![CDATA[ */
var interval = null;
var data = $(this).attr('class').match(/({.*})/i);
data = (data && data[1]) ? data[1] : '' ;
data = eval("(" + (data.indexOf('{') < 0 ? '{' + data + '}' : data) + ")");
/* ]]> */
</script><?php

我想将此主题提交到wordpress目录,但他们不允许出现此错误:/

4 个答案:

答案 0 :(得分:4)

您绝对不应该使用eval,因为它可能是一个严重的安全问题。请参阅this1this2this3this4this5this6

只需以不需要eval的方式重写代码。

答案 1 :(得分:4)

尝试$.parseJSON(data.indexOf('{') < 0 ? '{' + data + '}' : data)

eval是邪恶的

答案 2 :(得分:0)

如果你不得不使用eval出错了。应该没有使用eval的真实情况,而这种情况无法通过最佳实践正确实施。

答案 3 :(得分:0)

您可以使用:“ev”。“al”,因为它正在扫描您的文件“eval”。但是,使用eval是好的,是另一个问题。