ホームページ > 記事 > ウェブフロントエンド > JavaScript は安全ですか?
JavaScript にはセキュリティがあります。 JavaScript はセキュリティ言語であり、ローカル ハード ディスクへのアクセス、サーバーへのデータの保存、ネットワーク ドキュメントの変更と削除を許可せず、ブラウザを介した情報の参照や動的な対話のみを実現できるため、効果的にデータの損失を防ぎます。
このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
JavaScript (略して「JS」) は、現在最も人気があり広く使用されているクライアント側スクリプト言語です。Web ページに動的な効果やインタラクティブな機能を追加するために使用され、この分野で決定的な役割を果たしています。ウェブ開発の。
JavaScript は、Web サーバーを使用せずにユーザー入力に応答できるイベント駆動型のスクリプト言語です。たとえば、Web ページにアクセスするとき、マウスで Web ページをクリックするかスクロールします。ウィンドウの場合、JavaScript はこれらのイベントに直接応答できます。
JavaScript はオペレーティング システムに依存せず、ブラウザ上で実行できます。したがって、JavaScript スクリプトを作成した後は、システムのブラウザが JavaScript をサポートしている限り、どのシステムでも実行できます。
JavaScript はセキュリティ言語です。ローカル ハード ディスクへのアクセスは許可されず、データをサーバーに保存することはできず、ネットワーク ドキュメントの変更と削除は許可されず、ブラウザを介してのみ情報を参照できます。または動的な相互作用により、データ損失を効果的に防止します。
#5 実装が簡単な JavaScript セキュリティのベスト プラクティス
1. JavaScript リンターの使用
JavaScript のセキュリティ問題を回避する最も簡単で簡単な方法は、コードを検査することです。 Linter は、コードにプログラミングやスタイルのエラー、コードの匂い、既知のセキュリティの脆弱性がないかをチェックする静的コード分析ツールです。 最も有名な 3 つの JavaScript リンターは、JSHint、JSLint、および ESLint です。 Visual Studio Code や Atom などの最新のソース コード エディターには、プラグイン可能な JavaScript lint 機能も付属しています。2. インライン JavaScript の使用を避け、コンテンツ セキュリティ ポリシーを確立します。
インライン スクリプト タグを使用すると、Web サイトまたはアプリケーションがクロスサイト スクリプティング (XSS) に対して脆弱になります。攻撃します。この JavaScript セキュリティ リスクは、インライン イベント ハンドラー (onclick など) を含むすべてのスクリプトを外部 .js ファイルとして追加することで回避できます。 セキュリティを強化するために、コンテンツ セキュリティ ポリシー (CSP) を確立することもお勧めします。これは、クライアントとサーバー間の通信におけるセキュリティ層であり、HTTP 応答ヘッダーにコンテンツ セキュリティ ルールを追加できるようになります。 ページにインライン スクリプトがない場合、より効果的な CSP のセットアップが簡単になります。 script-src ディレクティブとdefault-src ディレクティブを使用すると、すべてのインライン スクリプトをブロックできるため、悪意のあるインライン スクリプトがサイト上で実行しようとすると、自動的に失敗します。3. ユーザー入力の検証
悪意のあるコードの挿入を回避するには、クライアント側とサーバー側の両方でユーザー入力を検証することが重要です。 HTML5 フォームには、required、min、max、type などの組み込みのフォーム検証属性が付属しており、クライアント側で JavaScript を使用せずにユーザー データをチェックし、エラー メッセージを返すことができます。パターン HTML 属性を使用して、正規表現を使用して入力された値を検証することもできます。 これらの HTML5 属性に加えて、最新のブラウザでは制約検証 API もサポートされており、JavaScript を使用してカスタム入力検証を実行できます。 これは、フォームで使用されるさまざまな HTML 要素 (HTMLInputElement、HTMLSelectElement、HTMLButtonElement など) に属する JavaScript インターフェイスを拡張し、さまざまな制約に役立つプロパティとメソッドを提供する Web API です。入力の有効性の確認、有効性ステータスのレポート、そして他の操作を実行します。4. ユーザー入力をエスケープまたはエンコードする
XSS 攻撃を回避するには、受信データまたは安全でないデータをエスケープまたはエンコードすることも重要です。エスケープとエンコードは、セキュリティ上のリスクを引き起こす可能性のある特殊文字を安全な形式に変換するための 2 つの手法です。 エンコードでは、JavaScript の引用符の前の \ 文字など、潜在的に危険な文字の前に余分な文字が追加されますが、エスケープすると、文字が > 文字から > 文字列など、同等だが安全な形式に変換されます。 HTMLで。 経験則として、HTML エンティティ (< や > 文字など) が信頼できないソースからのものである場合は、常にエンコードする必要があります。 URI と JavaScript コードをエスケープするには、FreeFormatter の JavaScript String Escaper や URL Encoder/Decoder などの無料のエスケープ/エンコーディング ツールを使用できます。 エスケープされていない文字列を返す JavaScript プロパティとメソッドの使用は避けることをお勧めします。たとえば、HTML に解析する innerHTML の代わりに安全な textContent プロパティを使用できます (文字がエスケープされません)。5. JavaScript コードを圧縮、バンドル、難読化する
最後に、より多くのセキュリティ機能を備えた Webpack などのツールを使用してコードを縮小してバンドルすると、ハッカーがスクリプトの構造やロジックを理解しにくくなります。たとえば、ロードされるすべてのスクリプトに乱数を追加できます。
スクリプトの縮小とバンドルは JavaScript のベスト プラクティスとみなされますが、難読化は物議を醸すトピックです。これは、ブラウザーが難読化されたスクリプトを読み込むのに時間がかかり、特に難読化レベルが高い場合にパフォーマンスとユーザー エクスペリエンスが低下するためです。ただし、スクリプトの一部またはすべてを難読化する場合は、Obfuscator.io などの無料ツールを使用できます。このツールには、Webpack、Grunt、Rollup、Netlify などの一般的なツールのプラグインも含まれています。
これらの JavaScript セキュリティのベスト プラクティスに従うと、スクリプトの安全性を高め、クロスサイト スクリプティング、クロスサイト リクエスト フォージェリ、サードパーティのセキュリティ脆弱性などの一般的な攻撃を防ぐことができます。
【関連する推奨事項: JavaScript ビデオ チュートリアル 、基本プログラミング ビデオ ]
以上がJavaScript は安全ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。