Intereting Posts
используя mysql_close () Получить часть текущего URL-адреса PHP Исправить временную строку Анализ данных кредитной карты с помощью считывателя магнитных полос с использованием javascript Как использовать механизм шаблонов PHP в Twig вместо синтаксиса Twig в Silex 2 Как добавить разрыв строки в середине точки, разделенной пробелами Как интегрировать PayPal с Zend Framework Атрибуты проверки Laravel «хорошие имена» регулярное выражение, чтобы превращать URL-адреса в ссылки, не вступая в связь с существующими ссылками в тексте phpunit mock метод несколько вызовов с разными аргументами Увеличение таймаута по умолчанию для приложения PHP после того, как функция jquery вызова ajax не работает должным образом Как предотвратить получение двойных / дублированных форм в CakePHP? Возьмите значение массива, если имеется определенный ключ с PHP Шифровать javascript-файл jQuery

403 Запрещено при передаче URL в переменной GET

У меня возникла проблема:
403 Запрещено на странице PHP с URL, закодированным в параметре $ _GET

Я получаю ошибку «403 запрещен». Когда я передаю URL как переменную GET, как это

http://script/test.php?url=https://stackoverflow.com/questions/ask 

Но это нормально.

 http://script/test.php?url=stackoverflow.com/questions/ask 

И даже если я urlencode URL-адрес, он все равно дает мне 403.

Apache mod_fcgid / 2.3.6 mod_auth_passthrough / 2.1 mod_bwlimited / 1.4 FrontPage / 5.0.2.2635 Сервер в —– Порт 80

И я не думаю, что у этого сервера включен mod_security, потому что когда я добавляю SecFilterEngine Off в htaccess, я получаю «500 Internal Server Error».

Фрагмент кода:

 $URL = mysql_real_escape_string($_GET['url']); mysql_query("INSERT INTO `url` ..."); 

Итак, вопрос в том, могу ли я исправить это без редактирования httpd.conf, потому что у меня нет привилегий root. благодаря

Related of "403 Запрещено при передаче URL в переменной GET"

У вас есть доступ к самому журналу ошибок apache? Если это система cPanel и у вас есть доступ к оболочке, попробуйте просмотреть журнал / usr / local / apache / logs / error_log – там появятся ошибки mod_security. В противном случае вы можете заглянуть внутрь своей панели управления, чтобы узнать, не принимает ли она какие-либо сообщения об ошибках.

Даже если mod_security установлен, вы все равно можете получить ошибку 500 после установки SecFilterEngine в .htaccess, если ключевое слово не разрешено.

Я рекомендую обратиться к вашему веб-хосту, чтобы определить, является ли причина mod_security. Если это так, вы можете попросить их создать исключение. (Я работаю для веб-хостинга, и мы почти всегда рады делать исключения mod_security для разумных приложений)

Если это вызвано mod_security, и ваш веб-хост не создаст исключение, вам либо нужно будет изменить хостинговые компании, либо найти другой способ передачи URL-адреса (для вас может быть использована кодировка base64)

Для меня решение этой проблемы состояло в том, что мой хост (hostgator) создал исключение для mod_security на моем сайте. mod_security используется для черных списков определенных типов операций, и кажется, что $ _GET-запросы, содержащие URL-адреса ( http: //www.etc ), были по какой-либо причине. Как указано lunixbochs, большинство хостов будут рады разобраться в этом.