少しばかげているように聞こえるかもしれませんが、ご容赦ください。しかし、私はこの 1 週間か 2 週間で PHP と jQuery の基礎を学んだばかりです。これは、少し経験のある人なら誰でも明白かもしれないので、共有できる情報をいただければ幸いです。
Web サイトを更新して、cURL 呼び出しを介して SQL データベースにクエリを実行するカスタム検索機能を含めています。要するに:
HTML フォーム (テキスト ボックスを含む) からユーザー入力を取得し、その値を自分のドメインのサーバー上の php ファイル (searchfunction.php) に POST します。
次に、searchfunction.php はフォーム データを処理し、プライベート API キー (http://apidomain/[api key]/request.php?querystring の形式) を含む URL クエリ文字列に追加し、それをに送信します。 curl_init 経由のサードパーティ サーバー。
サードパーティのサーバーは、URL のクエリ文字列に基づいてシリアル化された php 配列を返します。次に、php ファイルは配列を処理し、元のユーザー フォームと同じページに表示される HTML をエコーします (私がほとんど理解していない jQuery マジックを介して)。
ここに私の質問があります:
Q1) すべての SQLを処理する API に cURL 文字列を送信しているため、SQL インジェクションのリスクはありますか? もしそうなら、そのリスクを排除する背後にある理論は何ですか?
Q2) プライベート API キーを非表示にするにはどうすればよいですか? ブラウザの URL バーには決して含まれませんが、フォーム データを処理して HTML を返す php ファイルの内容から目を離す簡単な方法 (おそらく .htaccess ファイルを介して) はありますか?
Q3) 他に知っておくべき明らかなセキュリティの抜け穴はありますか? API を介してデータベースに書き込む方法はいくつかありますが (API キーと適切なクエリ文字列の構文を使用しないわけではありません)、悪意のあるユーザーが cURL 呼び出しを操作するのを防ぐにはどうすればよいでしょうか?
事前にご協力いただきありがとうございます。Web サイトを他のサーバーと通信させるという当惑するような世界に足を踏み入れた今、特にセキュリティに関しては、完全に頭がいっぱいであることに気付きました。