0

O. このウェブサイトは私にとって麻薬のようなものです。誰かがこのタスクを案内してくれることを願っています。

特定のフォルダーまたはファイルへのファイルへの直接アクセスを制限し、事前に承認された IP アドレスを介したアクセスのみを許可するために、スクリプト/回避策が必要です。

私が達成したいのは、ファイルが私のウェブサイト上で iframe を介してアクセスできるようにすることです。私たちのウェブサイトのみですが、訪問者が直接アクセスしようとする試みはブロックします。IP に基づく制限 (私の Web サイトの IP アドレスを許可された訪問者のプールに追加し、他のすべての人をブロックします)。

www.mysite.com/public/ は iframe 経由で開きます www.mysite.com/private/FILEA.html

しかし www.mysite.com/private/FILEA.html 直接アクセスすることはできません

これは可能ですか?私は解決策を見つけようと何日もSOを読んできました。

誰かが解決策を考えることができれば、私は永遠に感謝します.

どうもありがとう!

4

1 に答える 1

0

これは可能ですか?私は解決策を見つけようと何日もSOを読んできました。

あなたが考えていることではありません。www.mysite.com/private/FILEA.htmlIP で制限することはできません。コンテンツをiframe に入れると、クライアントのブラウザーによって読み込まれるため、アクセスするリモート IPクライアントの IP のままです。IP 経由でアクセスを拒否/許可することはできません。

できることは、リファラーによるアクセスのブロックです。リファラーが存在することを確認し、リクエストにそのリファラーがある場合にのみファイルwww.mysite.com/public/をロードすることができます。FILEA.htmlただし、人々はリファラーを偽装してこれを回避することができるため、永続的である場合でもファイルに直接アクセスできます。これは、ドキュメント ルートの htaccess ファイルに配置されたいくつかの書き換えルールを介して行うことができます。

RewriteEngine On
RewriteCond %{HTTP_REFERER} !www.mysite.com/public/ [NC]
RewriteRule ^/?private/FILEA.html$ - [L,F]

これは、リファラーに が含まれておらず www.mysite.com/public、リクエストが に対するもの/private/FILEA.htmlである場合、403 禁止を返すことを意味します。

プライベート ファイルを提供する前に、セッション Cookie が有効であることを確認する php スクリプト (またはその他のスクリプト) を介して、誰かがアクセスし、/public/すべての要求をルーティングするときに、一時的なセッション Cookie を発行すると、もう少し複雑になります。FILEA.html

于 2012-12-27T07:16:40.083 に答える