Mystery 403 Ошибка

У меня есть страница PHP (одна из многих), которая используется для отображения и обновления содержимого базы данных MySQL. Страница построена очень простым способом: нажатие кнопки «Отправить» перезагружает страницу, программа PHP обновляет базу данных, и страница снова отображается с новым содержимым.

Внезапно сегодня я столкнулся с проблемой. При первом открытии страница в порядке, но после нажатия кнопки «Отправить» я получаю ошибку 403. Эта ошибка появляется перед запуском PHP, потому что база данных не обновляется.

Другие похожие страницы не имеют такой же проблемы, поэтому я работал с файлом, удаляя биты, пока проблема не исчезла. Был сделан вывод, что проблема связана с двумя входными данными формы (всего около 20). Код для одного из этих проблемных входов

<tr class="formspace">
<td valign="top" class="formleft"><br>
<br>
From the Hotel Guestbook</td>
<td colspan="2"><textarea name="guestbook" cols="60" rows="4" wrap="VIRTUAL" id="guestbook"><?php echo $row_hotel['guestbook']; ?></textarea>
<span class="formnote">&nbsp;&nbsp;&nbsp;Remember to put &lt;hr class="guestbook"&gt; between the paras.</span>
</td>
</tr>

Тем не менее, этот не вызывает проблем

<tr class="formspace">
<td valign="top" class="formleft"><br>
<br>
Restaurant</td>
<td colspan="2"><textarea name="restaurant" cols="60" rows="4" wrap="VIRTUAL" id="restaurant"><?php echo $row_hotel['restaurant']; ?></textarea></td>
</tr>

Два поля с именами проблем — «гостевая книга» и «действия», которые кажутся довольно неточными и не должны конфликтовать ни с чем другим.

Разрешения для файла точно такие же, как и все остальное, что работает. 644 для файла и 755 для папки, в которой он находится.

Я что-то упускаю из виду?

-3

Решение

Ранее я сталкивался с подобными проблемами, и если это та же проблема, ваш веб-хост установил mod_security или изменил настройки фильтра.

Что делает mod_security (среди прочего), так это фильтрует все переменные запроса (POST, GET и т. Д.). Он проверяет распространенные хакерские строки SQL-инъекций (например, "; DELETE * FROMИксWHERE 1), но также строки, которые обычно используются для взлома, а гостевая книга и действия звучат как строки, которые можно фильтровать.

Вы можете отключить mod_security, добавив следующие строки в ваш .htaccess:

SecFilterEngine Off

Или просто отключить его для запросов POST:

SecFilterScanPOST Off

РЕДАКТИРОВАТЬ лучше обернуть его внутри <IfModule ...> заявление:

<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]