为什么一篇博客文章中的这个片段会让WordPress崩溃?

时间:2010-10-18 作者:Svish

好吧,这真的很奇怪,我不知道这里发生了什么。我正在使用WordPress 3.0.1,我创建了一篇新的博客文章,给它一个标题,将以下代码粘贴到博客文章中,然后点击保存草稿。

<code lang="php">
// Init curl
$request = curl_init();

// Set request options
curl_setopt_array($request, array
(
    CURLOPT_URL => \'https://www.sandbox.paypal.com/cgi-bin/webscr\',
    CURLOPT_POST => TRUE,
    CURLOPT_POSTFIELDS => http_build_query(array
        (
            \'cmd\' => \'_notify-synch\',
            \'tx\' => $_GET[\'tx\'],
            \'at\' => $your_pdt_identity_token,
        )),
    CURLOPT_RETURNTRANSFER => TRUE,
    CURLOPT_HEADER => FALSE,
    CURLOPT_SSL_VERIFYPEER => TRUE,
    CURLOPT_CAINFO => \'cacert.pem\',
));

// Execute and get the response and status code
$response = curl_exec($request);
$status   = curl_getinfo($request, CURLINFO_HTTP_CODE);

// Close
curl_close($request);
</code>
这只是我脑海中的一个代码示例,但WordPress似乎不这么认为,因为当我点击Save Draft、Preview或Publish时,我得到的只是一个包含以下文本的空白页面:

服务暂时不可用

由于维护停机或容量问题,服务器暂时无法为您的请求提供服务。请稍后再试。

这到底是怎么回事??

1 个回复
最合适的回答,由SO网友:Svish 整理而成

当然,在我问了这个问题之后,我找到了解决办法。。。很明显,这是由一个容易触发的Mod\\u安全系统引起的。

将这些行添加到。htaccess文件让它很好地消失了:

<IfModule mod_security.c>
  SetEnvIfNoCase Request_URI ^/wp-admin/(?:post|async-upload)\\.php$ MODSEC_ENABLE=Off
  SetEnvIfNoCase Request_URI ^/xmlrpc\\.php$ MODSEC_ENABLE=Off
  SecFilterDebugLevel 0
  SecFilterDefaultAction "deny,nolog,noauditlog,status:503"
</IfModule>

结束