5

私たちのウェブサイトのチームは、すべてのユーザーが .php 拡張子で終わる URL の後にスラッシュ「/」と任意の文字列を追加しても、同じ元のページにアクセスできることを発見しました。

例: www.mydomain.com/index.php にアクセスするには:

  • www.mydomain.com/index.php/test
  • www.mydomain.com/index.php/test/123
  • www.mydomain.com/index.php/wqeqwew/2234dwd

(注: index.php/ の後の追加の文字列はサーバーには存在しません。それらは単なるゴミです)

もう 1 つの問題は、動的 URL を使用すると、ドメイン名と最初のパラメーターの間に存在しない php ファイルを常に追加できることです。

例: www.mydomain.com/product/one にアクセスするには:

  • www.mydomain.com/test.php/product/one
  • www.mydomain.com/imnothere.php/product/one

どうすればこれを防ぐことができ、どのように対処すればよいでしょうか? これは SEO やセキュリティの観点から深刻な問題ですか? これらの種類の URL がブラウザで入力またはクリックされるたびに、Web サイトが 404 エラーを返すようにしたい。

どんな助けでも大歓迎です。ありがとう!

編集:

私はすでにそれを修正したと思います。AcceptPathInfo Off最初の問題については、.htaccessに追加しました。2 番目の問題については^、動的 URL の RewriteRule の前に追加しました。たとえばRewriteRule ^product/(.*)$、ドメイン名と最初のパラメーターの間に誰も余分な文字列を追加できないようにします。助けてくれてありがとう!

4

2 に答える 2

1

どうすればこれを防ぐことができ、どのように対処すればよいでしょうか?

これは Apache のAcceptPathInfo指示によるものです。オフにすることができます。サーバーが適切に構成されている場合は、.htaccess ファイルが必要です。

これは SEO やセキュリティの観点から深刻な問題ですか?

深刻な問題になる可能性がある方法は考えられません。これは通常、ほとんどのハンドラーでデフォルトで有効になっており、「貧乏人mod_rewrite」 (見栄えの良い URL を提供する方法) として日常的に使用されています。

于 2012-11-23T09:09:47.720 に答える
0
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?url=$1 [PT,L] 
于 2012-11-23T09:13:47.197 に答える