Почему этот фрагмент в блоге приводит к сбою WordPress?


Хорошо, это действительно странно, и я понятия не имею, что здесь происходит. Я использую 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 думает иначе, потому что, когда я нажимаю Сохранить черновик, просмотреть или опубликовать, все, что я получаю, - это пустая страница со следующим текстом:

Служба временно недоступна

Сервер находится временно не удается выполнить ваш запрос из-за простоя в обслуживании или проблем с пропускной способностью. Пожалуйста, повторите попытку позже.

Что, черт возьми, здесь происходит??

 1
Author: Community, 2010-10-18

1 answers

И, конечно, после того, как я задам вопрос, я найду решение... По-видимому, это вызвано триггером happy Mod_Security.

Добавление этих строк в файл .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>
 1
Author: Svish, 2010-10-18 21:19:52