команда нашего веб-сайта только что обнаружила, что любой пользователь может добавить косую черту '/', а затем любую строку после URL-адреса, которая заканчивается расширением .php и все еще будет обращаться к той же исходной странице.
Например: я могу получить доступ к www.mydomain.com/index.php с помощью:
(Примечание: дополнительные строки после index.php / не существуют на сервере, это всего лишь мусор)
Другая проблема заключается в том, что с моими динамическими URL-адресами я всегда могу добавить несуществующий php-файл между моим доменным именем и первым параметром.
Например: я могу получить доступ к www.mydomain.com/product/one с:
Как я могу предотвратить это и как с этим бороться? Это серьезная проблема с точки зрения SEO или безопасности? Я хочу, чтобы веб-сайт возвращал ошибку 404 всякий раз, когда эти URL-адреса вводятся или нажимаются в браузере.
Любая помощь приветствуется. Благодаря!
РЕДАКТИРОВАТЬ:
Думаю, я уже исправил это. Для первой проблемы я добавил AcceptPathInfo Off
в свой .htaccess. И для второй проблемы я просто добавил ^
перед моим RewriteRule для моего динамического URL, например RewriteRule ^product/(.*)$
чтобы никто больше не мог добавлять дополнительную строку между именем домена и первым параметром. Спасибо за помощь!
Как я могу предотвратить это и как с этим бороться?
Это связано с директивой Apache AcceptPathInfo
. Вы можете отключить его – если сервер настроен соответствующим образом, вам просто понадобится файл .htaccess.
Это серьезная проблема с точки зрения SEO или безопасности?
Я не могу придумать, как это может быть серьезной проблемой. Обычно он используется по умолчанию для большинства обработчиков и обычно используется как « mod_rewrite
» для бедного человека (способ предоставления привлекательных URL-адресов).
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?url=$1 [PT,L]