1

サーバー側ではなくクライアント側でページをスクレイピングしたかったのです。ただし、同一生成元ポリシーにより、これを行うことができません。

私が理解しようとしているのは、別のサイトの DOM への読み取り専用アクセス権がない理由です。

ページをサーバーにプルして任意の方法でアクセスすることで同じ情報を取得できる場合、これはサイトにどのようなセキュリティ リスクをもたらしますか。

次のようなページから基本的な情報を取得したいだけです。

document.title

これをサーブ側でできるなら、なぜクライアント側でできないのでしょうか? 主な違いは、私が支払いたくない余分な往復ですか?

明らかに、ユーザーのデータにアクセスできないようにする必要があります。これは明らかであり、これに関する情報は必要ありません。しかし、同じ方法で、次を使用してページの汎用バージョンを取り込むことができます

file_get_contents

そしてDOMを解析して、クライアント側でやりたいと思います。

JavaScript がユーザー定義データへのアクセスと一般的なページ データへのアクセスの違いを判断できないという技術的な制限は何ですか?

PHPはそれを行うことができます。

JavaScript ができないのはなぜですか?

その制限は何ですか?

私は必ずしもそれを回避したりハッキングしたりしたくはありませんが、目的をよりよく理解し、私が持っているケースには当てはまらないことに気付くかもしれません...ページスクレイピングクライアント側

関連している

同一生成元ポリシーを回避する方法

同一オリジン ポリシー

ブックマークレット (リンク内の JavaScript) はサーバーによってどのように検証されますか? セキュリティはどのように保たれていますか?

http://en.wikipedia.org/wiki/Representational_state_transfer#Central_principle

4

1 に答える 1

1

別のサイトの DOM への読み取り専用アクセス権がない理由

ユーザーが特定のサイトでアクセスできるデータは、そのサイトでアクセスできるデータと同じではない場合があります。

ユーザーは IP アドレスを含むあらゆる種類のもので識別される可能性があるため、ブラウザーがすべての個人情報のデータをサニタイズする方法はありません。

過度に単純化した図:

<iframe src="your bank" id="frame"></iframe>
<script>
    var bank = document.getElementById('frame').contentDocument;
    var stolen = bank.getElementById('account_balance').innerText;
    ajax('theft.cgi', stolen);
于 2012-09-07T13:09:59.540 に答える