インターネットの継続的な発展に伴い、Web アプリケーションはますます広く使用されています。これらはさまざまな分野で重要な役割を果たしており、これらのアプリケーションはユーザーに簡単なアクセスを提供しますが、同時にハッカーやデータ漏洩の標的にもなります。したがって、Web アプリケーションのセキュリティはこれまで以上に重要になっています。この記事では、Nginx を使用して安全な Web アプリケーションを構築し、CSRF、XSS、SQL インジェクション攻撃を防ぐ方法を紹介します。
クロスサイト リクエスト フォージェリ (CSRF) 攻撃は、ユーザー認証を悪用し、被害者の認証済みセッションの機能を利用して Web アプリケーションに侵入する攻撃方法です。 Web サイト内で予期しないアクションを実行するため。したがって、攻撃者は、被害者の実際のアカウント資格情報を知らずに、パスワードの変更、資金の送金などの不正行為を実行する可能性があります。
CSRF 攻撃を防ぐには、次の一般的な手順を実行することをお勧めします。
(1) 予測できないセキュリティ検証コード (トークン) を使用して、リクエストの送信元を制限します。
(2) [HTTP Referer] フィールドを確認し、リクエスト ソースを強制します。
Nginx 構成例:
まず、「/etc/nginx/conf.d/csrf.conf」という名前のファイルを作成し、次の内容をそれに追加します。
location /csrf {
if ($request_method != 'POST') { return 405; } # Pre-defined token set $token "abc123"; if ($http_csrf_token != $token) { return 403; } # Place the proxied resource here
}
この例では、クライアントが POST リクエストを「/csrf」に送信すると、サーバーは HTTP ヘッダーで提供されたトークンを検証します。トークンがサーバー上のトークンと等しくない場合、サーバーは 403 エラーを返します。トークンが等しい場合、サーバーはリクエストを処理し、リソースを返します。
クロスサイト スクリプティング (XSS) 攻撃は、Web アプリケーションの脆弱性を悪用し、悪意のあるスクリプトを挿入して被害者を攻撃する攻撃方法です。これらのスクリプトは通常、HTML テキスト入力、JavaScript および CSS インジェクション攻撃を通じて被害者のブラウザに関数を挿入し、機密情報を盗んだり、ページを改ざんしたりする可能性があります。
XSS 攻撃を防ぐには、次の一般的な手順を実行することをお勧めします。
(1) クライアント側で入力されたデータが正しいことを確認し、安全でない JavaScript 関数 (たとえば、 evalとして)。
(2) すべての信頼できる入力を検証し、すべての出力をエンコードします。
(3) CSP (コンテンツ セキュリティ ポリシー) ヘッダーを使用して、ページ要素を受け入れて設定するリソース ソースを制限します。
Nginx 設定例:
次の内容を nginx 設定ファイルに追加します:
add_header Content-Security-Policy "default-src 'self';
script-src 'self' 'unsafe-inline' 'unsafe-eval' https://apis.google.com";
これにより、現在のサイトと Google API からのリソースのみを信頼するようにブラウザに指示されます。さらに、スクリプト要素内でインライン スクリプトの使用が許可されます。
SQL インジェクション攻撃を防ぐには、次の一般的な手順を実行することをお勧めします。
(1) ユーザーが入力したデータを決して信頼せず、常にプリペアド ステートメントまたはパラメータ化されたクエリを使用します。
(2) データベースにアクセスするユーザーは操作の実行を制限する必要があります。
(3) データベース管理システムを選択するときは、堅牢で SQL インジェクション攻撃に耐えられることを確認してください。
Nginx Configuration例:
Web インターフェース経由でデータベースとの対話を試みる前に、必要な資格情報 (ユーザー名、パスワードなど) がすべて保護されており、Web サーバーに公開されていないことを確認する必要があります。 ##Web サービスの場合は、Nginx の SSL モジュールをインストールし、機密データの送信を保護するために HTTPS を使用する必要がある場合もあります。さらに、Nginx のキャッシュ モジュールとファイアウォールを使用して、ネットワーク攻撃や悪意のある動作を制限することもできます。
#概要: Web アプリケーションのセキュリティは、データとユーザーのプライバシーを保護するために非常に重要です。Nginx を使用すると、CSRF、XSS、SQL インジェクション攻撃を簡単に防ぎ、Web アプリケーションを攻撃から保護できます。新しい、これらは実際のアプリケーションで最も効果的なものの 1 つであるため、Web アプリケーションのセキュリティ ポリシーをタイムリーに更新および改善する必要があります。以上がNginx セキュリティ アーキテクチャ設計: CSRF、XSS、SQL インジェクション攻撃の防止の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。