0

少しばかげているように聞こえるかもしれませんが、ご容赦ください。しかし、私はこの 1 週間か 2 週間で PHP と jQuery の基礎を学んだばかりです。これは、少し経験のある人なら誰でも明白かもしれないので、共有できる情報をいただければ幸いです。

Web サイトを更新して、cURL 呼び出しを介して SQL データベースにクエリを実行するカスタム検索機能を含めています。要するに:

  1. HTML フォーム (テキスト ボックスを含む) からユーザー入力を取得し、その値を自分のドメインのサーバー上の php ファイル (searchfunction.php) に POST します。

  2. 次に、searchfunction.php はフォーム データを処理し、プライベート API キー (http://apidomain/[api key]/request.php?querystring の形式) を含む URL クエリ文字列に追加し、それをに送信します。 curl_init 経由のサードパーティ サーバー。

  3. サードパーティのサーバーは、URL のクエリ文字列に基づいてシリアル化された php 配列を返します。次に、php ファイルは配列を処理し、元のユーザー フォームと同じページに表示される HTML をエコーし​​ます (私がほとんど理解していない jQuery マジックを介して)。

ここに私の質問があります:

Q1) すべての SQLを処理する API に cURL 文字列を送信しているため、SQL インジェクションのリスクはありますか? もしそうなら、そのリスクを排除する背後にある理論は何ですか?

Q2) プライベート API キーを非表示にするにはどうすればよいですか? ブラウザの URL バーには決して含まれませんが、フォーム データを処理して HTML を返す php ファイルの内容から目を離す簡単な方法 (おそらく .htaccess ファイルを介して) はありますか?

Q3) 他に知っておくべき明らかなセキュリティの抜け穴はありますか? API を介してデータベースに書き込む方法はいくつかありますが (API キーと適切なクエリ文字列の構文を使用しないわけではありません)、悪意のあるユーザーが cURL 呼び出しを操作するのを防ぐにはどうすればよいでしょうか?

事前にご協力いただきありがとうございます。Web サイトを他のサーバーと通信させるという当惑するような世界に足を踏み入れた今、特にセキュリティに関しては、完全に頭がいっぱいであることに気付きました。

4

1 に答える 1

0

PHPはサーバー側であるため、キーをエコーアウトしたり、警告/エラーを引き起こしたりしない限り(APIキーを含むURLについて不平を言う可能性があります)、問題はありません. また、API による SQL データの処理についても (オープン ソースでない限り) 知ることができないため、実際には問題になりません。それらが安全である場合、それらは安全です。確信が持てない場合は、彼らのセキュリティについて尋ねるべきです (それが大したことであることを彼らに知らせるのは決して悪いことではありません)。

于 2013-03-03T21:51:36.233 に答える