403 Запрещенная ошибка при отправке данных GET - PullRequest
2 голосов
/ 10 февраля 2011

Мой сервер - сервер Linux, а реселлер - мой.Так что я тоже могу добраться до панели WHM.

Когда данные GET имеют вид:

a.php?url=http://www.domain.com

, возвращают 403 Forbidden.

Но если данные приходят так:

a.php?url=www.domain.com

, это работает.

Итак, http:// выдает ошибку.Как я могу это исправить?

Также возвращается 403 Запрещено:

a.php?url=http%3a%2f%2fwww.domain.com

Спасибо.

Ответы [ 4 ]

4 голосов
/ 15 февраля 2011

Это определенно один из mod_security CoreRules . У меня была та же проблема на моем предыдущем хосте. Однако я не помню название правила.

Вам следует изучить версию основных правил. 2.1.1 был бы текущим и мог бы ослабить этот специфический фильтр. Если обновление или перенастройка не помогли, вам бы пришлось использовать base64_encode () для вашего параметра url (более простые кодировки обнаруживаются mod_security).

SecFilterDebugLog /var/log/apache2/modsec_log
SecFilterDebugLevel 4

Включает ведение журнала отладки mod_security, чтобы вы могли узнать, какое правило на самом деле вызвало проблему - если вы хотите отключить его (желательно). http://www.modsecurity.org/documentation/modsecurity-apache/1.9.3/modsecurity-manual.html#07-logging

1 голос
/ 10 февраля 2011

Вам необходимо закодировать строку запроса, чтобы она была действительной, см. urlencode()

0 голосов
/ 21 февраля 2011

Это ошибка mod_security's 10_asl_rules.conf, вызывающая эту ошибку.

Это .htaccess обнаруживает что-то в этом URL и отправляет запрещенные заголовки.

0 голосов
/ 14 февраля 2011

re: 404 - возможно, вы переписываете строку запроса в какой-то путь, и у вас нет AllowEncodedSlashes?

...