0

リファラーヘッダーをチェックし、リクエストをドロップするか、回答のプロセスを実行するかを決定するカスタムモジュールをApache 2.2に持っています。Apache は cloudfront cdn の下にあるため、user-agent や referrer などのヘッダーは転送されません。

解決策は、リファラーを使用してリクエストにCookieを追加し、Apache側からそれを取得して、それを使用してリファラーヘッダーを上書きすることです。これは可能ですか?

要約すると、Cookie でカスタム値を取得し、それをリファラー ヘッダーに入れ、カスタム モジュールで処理します。

<VirtualHost *:80>
    RequestReadTimeout header=10-30,MinRate=500
    RewriteEngine On
    Header set Referer HTTP_COOKIE:referer 
    RequestHeader unset Authorization
    <Location /getobject>
            SetHandler getobject
    </Location>

ブラウザのデバッグ ツールでテストしたところ、Cookie がサーバーに送信されていることがわかりました。上記の例で試しましたが、うまくいきません。何か案が?

4

1 に答える 1

0

I can answer to myself i can add headers i need on the server via javascript in the cookies

document.cookie="referrer="+window.parent.location;

after that on the server i can use

SetEnvIfNoCase Cookie ^ $ "( referrer = \ w *: \ / \ / \ w *)" HTTP_MY_COOKIE = $ 1
SetEnvIfNoCase HTTP_MY_COOKIE " (http : \ / \ / . * \ . \ w *)" Referrer = $ 1 
<IfModule mod_headers.c>
  RequestHeader % { Referer } and Referrer
</IfModule >
于 2013-11-06T12:58:39.653 に答える