2017-01-23 5 views
2

私は、許可されたドメインからのものでない限り、ブラウザやその他のものを通して直接PHPファイルにアクセスしないようにしています。特定のドメインのみが私のPHPファイルにアクセスすることを許可します

私はこのようなPHPのヘッダアクセス制御 - 許可 - 起源を使用:

header('Access-Control-Allow-Origin: http://www.example.com'); 

しかし、それはまだ直接のアクセスをブロックしません。

UPDATE:

私は方法を.htaccessファイルを試みた:

order deny,allow 
deny from all 
allow from <your ip> 

、あまりにもこの1:

<RequireAll> 
    Require ip <your ip> 
</RequireAll> 

私もドメイン名の両方を使用してみました。

これで私は直接アクセスをブロックすることができましたが、私のアプリケーションのアクセスもブロックしました。

私が取得:

No 'Access-Control-Allow-Origin' header is present on the requested resource. 

と私がコメントを追加しました:

header('Access-Control-Allow-Origin: myappdomain.com'); 

はまだ機能していません。

+1

ホストで許可されている場合は、['.htacess'ファイル](http://www.htaccess-guide.com/)を使用して調べる必要があります。 – happymacarts

+0

データベースを確認する機能を常に設定できます。に追加されましたか?こうすることで、管理者セクションでも信頼できるドメインを追加することができます。 – Option

+0

@happymacartsはい。その専用サーバー。私はhtaccessを試したことを覚えていますが、他のドメインからのファイルへのアクセスを許可することができませんでした。 次のようなものがあります。 – ricardolobo

答えて

1

$_SERVER['HTTP_REFERER']はどうですか?
サンプルコード:

if($_SERVER['HTTP_REFERER'] !== 'gooddomain.com'){ 
    die('Unauthorized access'); 
} 

あなたが送信し、はるかにあなたができることがない受信サーバーの両方を制御しない限り、これは、非常に簡単に操作または変更することができますが。

+5

'$ _SERVER ['HTTP_REFERER']'は操作することができ、空にすることができますhttp://stackoverflow.com/questions/6880659/in-what-c​​ases-will-http-referer-be-empty – JustOnUnderMillions

+0

一意キーまたは認証メカニズムを使用して、他のドメインを制御する必要がある場合、すべてを操作できます。 – Antony

+0

一部のルータはプライバシー上の理由から、実際に '$ _SERVER ['HTTP_REFERER']'ヘッダをクリアします。 –

関連する問題