2017-03-21 4 views
-2

製品の詳細(ページあたり15,30または45)のWebページを作成しました。 ユーザーはレビュー、価格などで並べ替えることができ、ブランド、重量などを選択できます 私は外部ページにクエリを送信するためにAjaxを使用しています。これは危険ですか? 私が攻撃を受けないようにするには別の方法はありますか?リロードせずに結果をフィルタリングするAjax

+0

なぜこれは危険だと思いますか?サーバースクリプトがあなたが権限を持っているかどうかを確認する限り、あなたはOKであるはずです。攻撃を防ぐことはできません。攻撃が成功しないように、適切なチェックを確実に行うだけです。 – Barmar

+0

訪問者はHTMLでクエリを変更できるため、UPDATEコマンドまたは同様の危険なクエリを受け取ることができます – LuigiMdg

+0

ああ、実際にはAJAX経由でSQLを送信していたことはわかりませんでした。これを行う適切な方法は、検索オプションを送信し、それらからPHPでクエリを構築することです。たとえば、http://stackoverflow.com/a/28909923/1491895を参照してください。 – Barmar

答えて

0

APIから、クライアントからのリクエストを監査していることを確認してください。境界を確認し、不正な形式ではないことを確認し、期待通りのものであることを確認してください。それが無効であれば、それが有効であれば(403/404/etc ...)というクライアントに適切な応答を返し、フィルタリングされた結果を送り返します。

0

クライアントから生のSQLを送信しないでください。フォームフィールドの値を送信し、サーバー上のPHPスクリプトで使用してSQLクエリを作成してください。

フォームフィールドからWHERE句を動的に生成する方法については、https://stackoverflow.com/a/28909923/1491895を参照してください。同様の方法をORDER BY句に使用できます。

関連する問題