web-dev-qa-db-ja.com

403クエリ文字列パラメーターにエンコードされたURLが含まれる場合

構成設定への最小限のアクセスで共有ホスティングを使用しています。

次の内容で、多かれ少なかれ空のHTMLファイルemptypage.htmlを作成しました。

<!DOCTYPE html>
<html>
<body>

</body>
</html>

エンコードされたURLをクエリ文字列パラメーターとして渡すと、サーバーから403エラーが発生します。

URLの例:

http://example.com/emptypage.html?u=http%3A%2F%2Fexample%2Eorg

ただし、エンコードされたURLが同じドメイン用である場合、ページは正常に表示されます。

URLの例:

http://example.com/emptypage.html?u=http%3A%2F%2Fexample%2Ecom

同様に、URLの先頭から「h」が削除されると、ページは正常に表示されます。

URLの例:

http://example.com/emptypage.html?u=ttp%3A%2F%2Fexample%2Eorg

これは、ローカル.htaccessファイルでオーバーライドできるWebサーバー設定の結果でしょうか?私のWebホストはApacheを使用しています(どのバージョンかはわかりません)。

注:以前に 類似の質問 を尋ねましたが、よく理解されておらず保留されていました。それ以来、この問題を引き起こしている正確な条件を把握するために、さらに研究を重ねてきました。

3
intuited

.htaccessファイルをチェックして、403の原因となっているファイルがないか確認します。

また、サーバー管理者にhttpd.conf(Apacheの構成ファイル)をチェックして、エラー403を参照しているものがあるかどうかを確認してください。

そして最後に、特定のURLをブロックする特別なモジュールがインストールされる場合があります。

Htmlページは静的なページであるため、クエリ文字列を追加する場合、ファイル拡張子は.html以外にする必要があります。 (パラメーターに基づいて変化しないページ)。

1
Mike