2

.htaccess ルール、ヘッダーのチェック、暗号化の使用などについて多くのことを読みましたが、求めている答えが正確には見つかりませんでした。サーバーが正しくセットアップされていると仮定すると、AJAX を使用して貴重な PHP スクリプトにアクセスできないことはわかっています。アドレスバーへのアクセスを許可しないが、AJAX リクエストもブロックするアクセス変数が定義されているかどうかを確認してみました。

AJAX 呼び出しに使用する PHP スクリプトがいくつかある場合、アドレス バーへのアクセス、PHP POST (cURL など)、およびドメイン外からの AJAX (クロスドメイン アクセス制限によると想定) を防ぐ方法はありますか?

4

4 に答える 4

5

リクエストがブラウザーのどの部分 (アドレスバー、AJAX) から来ているかを安全かつ確実に特定する絶対的な方法はありません。User-Agent ヘッダーを介して browser/curl/etc を介して送信されているものを特定する方法があります (ただし、確実ではありません)。

迅速ではあるが信頼性がはるかに低い解決策は、次のヘッダーを確認することです。ほとんどのブラウザーは、AJAX 呼び出しでそれを添付します。よく調べてから実行してください。

X-Requested-With: XMLHttpRequest

: リソースが重要な場合は、クライアントを信頼しないでください。アクセス フィルタリングの他の手段を実装することをお勧めします。誰でもヘッダーを偽造できることを忘れないでください。

于 2013-04-10T17:27:15.027 に答える
0

リクエストが Ajax リクエストでないかどうかをチェックして禁止することはできますが、ヘッダーを操作できるため、実際には安全ではありません。

できることは、それらのファイルへのアクセスが許可されている IP を除くすべての IP をブロックすることです。

どちらもできることは、一種の認証を実装することです。この場合、外部アプリケーションは資格情報をスクリプトに送信する必要があり、スクリプトはクライアントが有効かどうかを確認します。

多くの方法がありますが、すべてが最高のセキュリティを達成するための最良の方法ではありません。

于 2013-04-10T17:27:58.683 に答える
-1

if isset SERVER['HTTP_ORIGIN'] を POST アクセスからキャッチしてみてください。ドメインと同一である必要があります。その場合、POST は自分の Web サイトによって生成されたものであり、安全に処理できます。

于 2016-08-26T10:51:19.270 に答える