JavaScript は、Web 開発で広く使用されているスクリプト言語で、Web ページをよりインタラクティブで動的にすることができます。ただし、JavaScript には強力な機能と柔軟性があるため、セキュリティ上のリスクもいくつかあります。この記事では、JavaScript のセキュリティ問題とそれに対応する防御策をいくつか紹介し、具体的なコード例をいくつか示します。
入力検証: ユーザーが入力したデータを検証し、特殊文字と HTML タグをフィルターで除外します。
function sanitizeInput(input) { return input.replace(/[<>]/g, ""); }
出力エンコーディング: ユーザーが入力したデータを Web ページに挿入するときに、適切なエンコーディングを使用します。
function insertText() { var userInput = document.getElementById("input").value; var sanitizedInput = sanitizeInput(userInput); document.getElementById("output").innerText = sanitizedInput; }
HTTP ヘッダーの Content-Security-Policy を設定する: このヘッダー情報により、JavaScript の実行を制限し、悪意のあるスクリプトの挿入を防ぐことができます。
Content-Security-Policy: script-src 'self'
リファラーを検証する: サーバー側で要求されたリファラーを検証し、それが正当なソースであるかどうかを判断します。
if (referer != 'https://example.com') { discardRequest(); }
CSRF トークンを使用する: ランダムに生成されたトークンをセッションに保存し、リクエストが行われるたびにそれをパラメーターまたはヘッダーとしてリクエストに追加します。
var token = generateToken(); var request = new XMLHttpRequest(); request.open('POST', '/api/update', true); request.setRequestHeader('X-CSRF-Token', token);
SameSite 属性を設定する: Cookie の SameSite 属性を Strict または Lax に設定して、同じサイト内でのみ送信されるように制限します。
Set-Cookie: sessionID=123; SameSite=Strict;
ライブラリと依存関係を定期的に更新する: サードパーティのライブラリと依存関係のバージョンを適時に更新して、最新のセキュリティを取得します。パッチ。
npm update
ライブラリのセキュリティを評価する: サードパーティ ライブラリの使用を選択する場合は、既知のセキュリティ脆弱性があるかどうかを確認し、メンテナの評判とアクティビティを理解する必要があります。
以上がJavaScript のセキュリティと防御について学ぶの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。