0

これを邪魔にならないようにします。私は PHP やデータベース プログラミングを頻繁に行うわけではないので、この現在のプロジェクトでは細心の注意を払っています。

基本的に、私はデータベースを利用したサイトを持っており、「ポスト」メソッドを使用して行をデータベースに挿入するJquery コードをいくつか持っています。始めてすぐに、セキュリティについて考えました。人々は私の php を見ることはできませんが、私の Javascript を見ることはできます。システムのセットアップが完了するとすぐにテストを行い、jquery を実行すると、リモート ソースにいる場合でも情報が挿入されます... これは明らかに重大なセキュリティ上の問題につながる可能性があります。私と同じように洗練されていないので、これを防ぎ、システムをより安全に保護する方法を知りたいだけですか?

そして… 私を侮辱したり、失礼なことをしないでください… 私は、私が愚かであるかもしれないことを理解していますが、私はただ学ぼうとしているだけです!

4

1 に答える 1

3

これは、クロス サイト リクエスト フォージェリ ( CSRF)同一オリジン ポリシー サンドボックスが防止するように設計されているものです。

別の観点から言えば、誰かが自分のサイトでフォームを作成し、それを POST リクエストとしてスクリプトに送信してジャンク レコードを追加するのを防ぐにはどうすればよいでしょうか?

通常、CSRF 保護はフレームワークによって提供されます。PHP で直接実装する場合は、非常に簡単です。

  1. サーバーのコードから一意のトークンを生成し、それをセッションに追加します。
  2. 非表示フィールドとしてフォームに埋め込みます。
  3. フォームを受け入れるスクリプトで、この非表示フィールドの存在を確認します。

フィールドが存在する場合は、セッション内のものと照合し、一致する場合は正当な要求です。

それらが一致しない場合 (またはフィールドが欠落している場合)、それはリモート リクエストであり、拒否できます。

このページでは、上記を実装するための PHP コードをいくつか提供します。

それが完了したら、jquery スクリプトが同じ方法で認証できることを確認する必要があります。このスニペットは、jquery で同じ手法を実装する手順を詳しく説明しています。

于 2012-06-25T06:05:30.493 に答える