iamは、サイト内の私のPHPページの1つにリクエストを送信するためにajaxを使用しています...しかし、これは私のhtmlページから行います。これは安全です....ajaxリクエストをリモートから送信する際のセキュリティ上の問題?
しかし、他の人が自分のPHPページを知っていて、スクリプトからそのページにajaxリクエストを送るとどうなりますか?これによりセキュリティ上の問題が発生する可能性があります。
どうすればこの問題を回避できますか?
iamは、サイト内の私のPHPページの1つにリクエストを送信するためにajaxを使用しています...しかし、これは私のhtmlページから行います。これは安全です....ajaxリクエストをリモートから送信する際のセキュリティ上の問題?
しかし、他の人が自分のPHPページを知っていて、スクリプトからそのページにajaxリクエストを送るとどうなりますか?これによりセキュリティ上の問題が発生する可能性があります。
どうすればこの問題を回避できますか?
あなたはCSRF attacksに対して防衛しようとしているようです。
あなたのページにノンスを含めることができます。そして、すべてのAJAXリクエストにノンスがあることを要求します。
攻撃者は異なるドメインに属しているため、ノンスを取得する方法はありません。
彼はCSRFについて聞いていますか?または彼は彼のPHP受信機に偽のデータを送信するボットについて話している可能性がありますか? +1でも – RobertPitt
@ロバート:わからない。私は彼に明確にするように頼んだ。 – SLaks
+1であり、ボットの問題はこれで実際に対処することができます。あなたがjavascriptで最後のnonceを生成させるようにすると、javascriptを解析しないので、ほとんどのボットはそれを処理できなくなります。ただし、これはバイパスすることができるため、ユーザー自身ではありません。特定のアプリケーションで使用するための良い方法です。 –
あなたのページにAJAXリクエストを送信できる唯一の方法は、同じドメインにある場合(つまり、そのスクリプトをあなたのドメインでホストする必要がある場合)です。
AJAXはクロスドメインで動作しないため、非常に安全です。
それ以外のほとんどの言語はそうすることができます:/ – RobertPitt
まあまあ、私は 'file_get_contents(" http://his.url ")'を実行できますが、これはAJAXの質問だと思いました。 – xil3
php(http://php.net/manual/fr/function.file-get-contents.php)を使用して、他のサーバーから簡単にページをリクエストできます。その後、リバースエンジニアリングのビットと、あなたはどのような種類のデータを知っている必要がありますそれぞれのparamが必要です。このようにして、PHPページが提供できるすべてを取得できます。 (私はちょうど欠陥/悪用を指している、私はそのような種類のvunerabilityを避けるためにajaxを行う正しい方法を知らない) –
これをやめるために行うことができることはほとんどありませんが、これを防止するのに役立つと思われるのは、優れたアプリケーションアーキテクチャを持つことによるものです。例えば
、次の規則が役立ちます:
session_start
を呼び出す前に
session_regenerate_id()
を使用常に次の2つのルールを忘れないでください。
あなたは攻撃者が何をするのだろうと恐れていますか? – SLaks
彼は私のソースコードを見るかもしれないと恐れているので、彼はどこでiamがajaxリクエストを送信し、どのパラメータがそのページに渡っているか知ることができます。 これで、彼はGETまたはPOSTを介して私のページにいくつかのパラメータを渡し、INSERT、UPDATE、DELETEなどの不正な操作を実行することができます。 –