javascript - PHP cURL または同様のクライアントリクエストはクロスドメインとみなされませんが、安全ではありませんか?どのような予防策が講じられていますか?

WBOY
リリース: 2023-03-02 12:26:01
オリジナル
1523 人が閲覧しました

以前は、PHP cURLシミュレートされたリクエストにもクロスドメイン制限があると考えていました。

質問

インターフェースを設計する際、アクセス許可が必要な機密データ(ログイン後に閲覧する必要がある個人データなど)。 tokenテストをしてみます。

ただし、他の共通インターフェイスは直接取得できますが、クロスドメイン呼び出しを防ぐためにクロスドメインヘッダーが追加されていますが、その後、PHP cURL是能调用成功的。后面看了eechen を介して呼び出しが成功することが判明しました。 eechen の回答を後で読みました。以下の通り:

クロスドメインを防ぐための同一オリジンポリシーは、ブラウザーのセキュリティメカニズムです。PHP の cURL は、インターネット上で何かをダウンロードするために file_get_contents を使用するのと同じように、コマンドラインの下では何の制限もなくブラウザー (クライアント) とみなすことができます。あなたが望むものと同じです、ソース。

このデザインは少し無理が​​あると思いますか? JS Ajax にはクロスドメイン制限がありますが、 JS Ajax有跨域限制,PHP cURL这种形式的则没有跨域限制。为什么当时确定跨域限制的时候,为什么不把PHP cURLこのフォームにはクロスドメイン制限はありません。クロスドメイン制限を決定する際に、なぜ フォームをクロスドメイン制限としても使用しなかったのでしょうか?

では、このようなフォームではクロスドメイン呼び出しをどのように防ぐのでしょうか?

解決策
  1. 网易云音乐的接口,是通过CSRF_TOKEN防止跨域调用的。
    PS:话说这种方案,貌似能够通过爬网页获取CSRF_TOKEN以前 NetEase Cloud クライアントを作成したいと思ったとき、

    を読んでからクロスドメイン呼び出しを行いましたか?
  2. また、この問題を解決する解決策はありますか?

ご回答をお待ちしております、ありがとうございます!

============ 10-27 15:51 ==============

PHP cURL做了什么特殊处理。谢谢南小鸟的回答,其实就是相当于直接访问指定URLごめんなさい、誤解し​​ていました…

による特殊な処理だと思っていました。 Nan Xiaoniao の回答に感謝します。これは実際には、指定された URL に直接アクセスするのと同等であり、当然クロスドメインの問題は発生しません...

私のインターフェースが外部からアクセスできないようにしたい場合はどうすればよいですか?

イントラネット上で

これには設定は必要ありません。

外部ネットワーク上
  1. 攻撃するために

    CSRF_TOKEN,但我查了一些CSRF_TOKEN的资料,貌似CSRF_TOKEN主要是为了防止跨站请求伪造,并不是用来做这个的...防止携带你的授权信息cookie:SESSIONIDセットアップ

    をします。
  2. REFERチェック

  3. 他には何がありますか?

JWT生成Token,每次,请求需要带上Token現在は

を使用する予定です(ユーザー情報の取得、権限制御の実行など)。

Gforce穴が空いたような気がします、ごめんなさい。また、ご回答ありがとうございます

返信内容:

PHP cURL以前は、

シミュレートされたリクエストにもクロスドメイン制限があると考えていました。

質問

tokenインターフェースを設計する際、アクセス許可が必要な機密データ(ログイン後に閲覧する必要がある個人データなど)。

テストをしてみます。

PHP cURL是能调用成功的。后面看了eechenただし、他の共通インターフェイスは直接取得できますが、クロスドメイン呼び出しを防ぐためにクロスドメインヘッダーが追加されていますが、その後、

を介して呼び出しが成功することが判明しました。後で eechen の回答を読みました。以下の通り:

クロスドメインを防ぐための同一オリジンポリシーは、ブラウザーのセキュリティメカニズムです。PHP の cURL は、インターネット上で何かをダウンロードするために file_get_contents を使用するのと同じように、コマンドラインの下では何の制限もなくブラウザー (クライアント) とみなすことができます。あなたが望むものと同じです、ソース。

JS Ajax有跨域限制,PHP cURL这种形式的则没有跨域限制。为什么当时确定跨域限制的时候,为什么不把PHP cURLこのデザインは少し無理が​​あると思いますか? JS Ajax にはクロスドメイン制限がありますが、 このフォームにはクロスドメイン制限はありません。クロスドメイン制限を決定する際に、なぜ

フォームをクロスドメイン制限としても使用しなかったのでしょうか?

このフォームでのクロスドメイン呼び出しを防ぐにはどうすればよいですか?

    解決策
  1. 网易云音乐的接口,是通过CSRF_TOKEN防止跨域调用的。
    PS:话说这种方案,貌似能够通过爬网页获取CSRF_TOKEN

    以前 NetEase Cloud クライアントを作りたいと思ったとき、
  2. を見てクロスドメイン呼び出しをしたことがありますよね。
  3. また、この問題を解決する解決策はありますか?

ご回答をお待ちしております、ありがとうございます!

============ 10-27 15:51 ==============PHP cURL做了什么特殊处理。谢谢南小鸟的回答,其实就是相当于直接访问指定URL

ごめんなさい、誤解し​​ていました…

による特殊な処理だと思っていました。 Nan Xiaoniao の回答に感謝します。これは実際には、指定された URL に直接アクセスするのと同等であり、当然クロスドメインの問題は発生しません...

🎜私のインターフェースが外部からアクセスできないようにしたい場合はどうすればよいですか? 🎜

イントラネット上で

これには設定は必要ありません。

外部ネットワーク上

    攻撃するために
  1. セットアップCSRF_TOKEN,但我查了一些CSRF_TOKEN的资料,貌似CSRF_TOKEN主要是为了防止跨站请求伪造,并不是用来做这个的...防止携带你的授权信息cookie:SESSIONIDをします。

  2. チェックREFER

  3. 他には何がありますか?

現在はJWT生成Token,每次,请求需要带上Tokenを使用する予定です(ユーザー情報の取得、権限制御の実行など)。

穴が空いたような気がします、ごめんなさい。また、ご回答ありがとうございますGforce

phpカールは、ブラウザでURLを直接開くことと同等であり、もちろんクロスドメインとしてカウントされません

JWTを使用するなどのインターフェース検証を実行できます

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート