2017-08-06 10 views
1

Apacheサーバー上のphpサイトにリダイレクトするフラスコアプリケーションがあります。私はPHPで多くの経験がありません。フラスコアプリはmysite.xyzにあり、phpサイトはmysite.xyz/page1にあります。 mysite.xyzから来ていない限り、mysite.xyz/page1に行く人へのアクセスを拒否したいと思います。インデックスからのトラフィックのみを許可し、他のすべてのトラフィックをインデックスにリダイレクトします。

if not coming from 'mysite.xyz': 
    redirect to 'mysite.xyz' 
else: 
    pass 

私のPHPとphpの冒頭を除いて。

答えて

0

http://php.net/manual/en/reserved.variables.server.phpを参照して、 'HTTP_REFERER'部分を確認してください。

コード例:

<?php 
if($_SERVER['HTTP_REFERER'] == "mysite.xyz"){ 
    // ok, continue to load the page... 
}else{ 
    die("not allowed"); 
} 

しかし、あなたはそれがmysite.xyzから来ているように思わせるためにリファラをSPOOFすることができます(しかし、それはそうではありません)ので、それは安全ではありません。

セキュリティ上の欠陥なしにこの機能を処理できるようにするための認証システムをユーザーに提供するオプションはありますか?

+0

このコードを私のpage1に追加し、$ _SERVER ['HTTP_REFERER']が空白を返すので、それは外にあると思います。しかし、あなたの最後のコメントは、私が望むものを達成するためのより良い方法があると私に思います。 mysite.xyzは、許可されたユーザであれば、mysite.xyz/page1にリダイレクトするフラスコのログインアプリです。私は人々がフラスコのアプリを通してログインすることなくmysite.xyz/page1に直接アクセスできるようにしたくありません。これを行うより良い方法はありますか? –

+0

セッション:http://php.net/manual/en/features.sessions.php – Capsule

関連する問題