Nginx ポリシー作成の実践: XSS 攻撃の防止
Web テクノロジーの継続的な発展に伴い、セキュリティの問題はますます重要になってきており、その中で XSS 攻撃は非常に一般的です。攻撃者は Web サイトにコードを挿入して、ユーザーが Web サイトを閲覧する際に攻撃を加え、個人のプライバシーを漏洩したり、フィッシング詐欺を行ったりします。したがって、最新の Web 開発では、XSS 攻撃を防止することが基本要件となっています。
XSS 攻撃を防ぐには、Nginx サーバーの動作をガイドするいくつかのポリシーを作成する必要があります。これらのポリシーには、入力検査、出力検査、Cookie フィルタリングなどが含まれます。以下に例を挙げて説明する。
- 入力チェック
入力チェックとは、パラメータの種類が正しいかどうか、特殊文字のフィルタリングなど、ユーザーが入力したデータをチェックすることを指します。 Nginx の場合、Lua スクリプトと正規表現を組み合わせて入力チェックを実装できます。以下に例を示します。
location / { access_by_lua_block { local args = ngx.req.get_uri_args() for key, val in pairs(args) do if type(val) == "table" then for k,v in pairs(val) do if string.match(v, "%W") then ngx.exit(ngx.HTTP_FORBIDDEN) end end else if string.match(val, "%W") then ngx.exit(ngx.HTTP_FORBIDDEN) end end end } }
上記のコードでは、Lua スクリプトの GET メソッドを通じてユーザーから渡されたパラメーターを取得し、正規表現を使用してパラメーターに特殊文字が含まれているかどうかを判断します。特殊文字が存在する場合、403 エラー ページが返されます。
- 出力チェック
出力チェックとは、タグ、属性、JavaScript などが安全かどうかなど、バックエンド プログラムの出力内容をチェックすることを指します。 Nginx の場合、NGX_LUA モジュールの sub_filter ディレクティブを使用して出力チェックを実装できます。以下に例を示します。
location / { proxy_pass http://backend; sub_filter_types application/json; sub_filter 'bad-word' 'good-word'; sub_filter_last_modified on; sub_filter_once off; }
上記のコードでは、sub_filter ディレクティブを有効にして、バックエンド プログラムから返された JSON データをチェックします。バックエンド プログラムから返されたデータに「bad-word」が含まれている場合は、「good-word」に置き換えます。
- Cookie フィルタリング
Cookie フィルタリングとは、ユーザーが設定した Cookie をチェックしてセキュリティを確保することを指します。 Nginx の場合、Lua スクリプトを使用して Cookie フィルタリングを実装できます。以下は例です:
location / { access_by_lua_block { local h = ngx.req.get_headers() local ck = h.cookie if ck ~= nil then if string.match(ck, "%W") then ngx.exit(ngx.HTTP_FORBIDDEN) end end } }
上記のコードでは、Lua スクリプトを使用して HTTP リクエスト ヘッダーに設定された Cookie を取得し、正規表現を使用して Cookie に特殊文字が含まれているかどうかを判断します。特殊文字が存在する場合、403 エラー ページが返されます。
上記は、XSS 攻撃を防ぐための Nginx ポリシー作成の実践です。もちろん、実際のアプリケーションでは、HTTP ヘッダーのセキュリティ、SQL インジェクションに対する防御など、考慮すべき側面が他にもたくさんあります。したがって、開発プロセスでは、Web アプリケーションのセキュリティを向上させるために、実際の状況に基づいてターゲットを絞った構成を作成する必要があります。
以上がNginx ポリシー作成の実践: XSS 攻撃の防止の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Tomcat サーバーが外部ネットワークにアクセスできるようにするには、以下を行う必要があります。 外部接続を許可するように Tomcat 構成ファイルを変更します。 Tomcat サーバー ポートへのアクセスを許可するファイアウォール ルールを追加します。 Tomcat サーバーのパブリック IP を指すドメイン名を指す DNS レコードを作成します。オプション: リバース プロキシを使用して、セキュリティとパフォーマンスを向上させます。オプション: セキュリティを強化するために HTTPS を設定します。

ThinkPHP フレームワークをローカルで実行する手順: ThinkPHP フレームワークをローカル ディレクトリにダウンロードして解凍します。 ThinkPHP ルート ディレクトリを指す仮想ホスト (オプション) を作成します。データベース接続パラメータを構成します。 Webサーバーを起動します。 ThinkPHP アプリケーションを初期化します。 ThinkPHP アプリケーションの URL にアクセスして実行します。

「nginx へようこそ!」エラーを解決するには、仮想ホスト構成を確認し、仮想ホストを有効にし、Nginx をリロードする必要があります。仮想ホスト構成ファイルが見つからない場合は、デフォルト ページを作成して Nginx をリロードすると、エラー メッセージが表示されます。が消え、ウェブサイトは通常のショーになります。

HTML ファイルを URL に変換するには Web サーバーが必要です。これには次の手順が含まれます。 Web サーバーを取得します。 Webサーバーをセットアップします。 HTMLファイルをアップロードします。ドメイン名を作成します。リクエストをルーティングします。

Node.js プロジェクトのサーバー デプロイメント手順: デプロイメント環境を準備します。サーバー アクセスの取得、Node.js のインストール、Git リポジトリのセットアップ。アプリケーションをビルドする: npm run build を使用して、デプロイ可能なコードと依存関係を生成します。コードをサーバーにアップロードします: Git またはファイル転送プロトコル経由。依存関係をインストールする: サーバーに SSH で接続し、npm install を使用してアプリケーションの依存関係をインストールします。アプリケーションを開始します。node Index.js などのコマンドを使用してアプリケーションを開始するか、pm2 などのプロセス マネージャーを使用します。リバース プロキシの構成 (オプション): Nginx や Apache などのリバース プロキシを使用して、トラフィックをアプリケーションにルーティングします。

Dockerfile で最も一般的に使用される命令は次のとおりです。 FROM: 新しいイメージを作成するか、新しいイメージを派生します。 RUN: コマンドを実行します (ソフトウェアのインストール、システムの構成) COPY: ローカル ファイルをイメージにコピーします。 ADD: COPY と同様に、自動的に解凍できます。 tar アーカイブまたは URL ファイルを取得します。 CMD: コンテナーの起動時にコマンドを指定します。 EXPOSE: コンテナーのリスニング ポートを宣言します (ただし、パブリックではありません) ENV: 環境変数を設定します。 VOLUME: ホスト ディレクトリまたは匿名ボリュームをマウントします。 WORKDIR: 作業ディレクトリをコンテナ ENTRYPOINT: コンテナ起動時に実行する内容を指定します。 実行可能ファイル (CMD に似ていますが、上書きできません)

はい、Node.js には外部からアクセスできます。次の方法を使用できます。 Cloud Functions を使用して関数をデプロイし、一般にアクセスできるようにします。 Express フレームワークを使用してルートを作成し、エンドポイントを定義します。 Nginx を使用して、Node.js アプリケーションへのリバース プロキシ リクエストを実行します。 Docker コンテナを使用して Node.js アプリケーションを実行し、ポート マッピングを通じて公開します。

PHP Web サイトを正常に展開して維持するには、次の手順を実行する必要があります。 Web サーバー (Apache や Nginx など) を選択する PHP をインストールする データベースを作成して PHP に接続する コードをサーバーにアップロードする ドメイン名と DNS を設定する Web サイトのメンテナンスを監視する手順には、PHP および Web サーバーの更新、Web サイトのバックアップ、エラー ログの監視、コンテンツの更新が含まれます。
