ホームページ >ウェブフロントエンド >jsチュートリアル >クライアント側のJavaScriptセキュリティの重要性
キーポイント
この記事はjscramblerによって提供されています。 SitePointを可能にしたパートナーをサポートしてくれてありがとう。
今日、どこに行っても、少なくとも一部はJavaScriptで作成されたものを確実に見るでしょう。理由の1つは、JavaScriptが非常に簡単に学習して使用できることです。別の理由は、jQuery、React.js、Backbone.js、Angular.js、ember.jsなどの統合しやすいオープンソースライブラリの幅広い可用性に関連しています。全体として、これにより開発の可能性が大幅に向上します。優れたアプリケーションのアイデアを持つ人々は、必ずしも開発者であるか、開発者を雇ってそれらのアイデアを実現する必要はありません。もちろん、この開発の容易さもセキュリティの脆弱性のリスクを高めます。これらのライブラリは、実際に何が起こっているのかを理解せずに使用できるからです。
javaScriptセキュリティ
JavaScriptのセキュリティの観点から、基本的に2つの考え方があります。1つはハッカーからコードを保護することであり、もう1つは独自の観点から保護することです。コードが改ざんまたは盗まれないようにします。
サーバー側のホスティング。従来、コード保護とは、サーバーにできるだけ多くのコードを保存することを意味します。これにより、コードがスヌーピングから保護され、サーバーがパフォーマンスが多い作業になります。これは現在も当てはまりますが、1回のソリューションとはほど遠いものです。サーバーにコードを保存すると、最良の保護が提供されますが、いくつかの欠点もあります。欠点の1つは、インターネット接続を強制していることを意味することです。これは必ずしも問題ではありませんが、オフラインで作業したいアプリケーションを開発している場合は実行可能ではありません。別の考慮事項はパフォーマンスです。サーバーの呼び出しには時間がかかります。これは単純なアプリケーションにとって大きな問題ではありませんが、ゲームなどの高性能アプリケーションでは、遅延が多すぎるとユーザーエクスペリエンスを台無しにする可能性があるため、問題になる可能性があります。
暗号化が機能しない理由。多くの人が尋ねる避けられない質問:「なぜ私は自分のファイルを暗号化できないのですか?」本物。問題は、そうではないということです。ファイルを暗号化できますが、ブラウザには役に立ちません。ブラウザに読みやすくするためにそれらを復号化する必要があります。これにより、出発点に戻ります。
javascriptはどこにでもあります
JavaScriptは非常に強力な言語ですが、セキュリティの観点からも明確な欠陥があります。解釈された言語です。 JavaScriptコードは、配布前にマシンコードにコンパイルされていませんが、実行時に実行されます。もちろん、これはデフォルトでは、JavaScriptベースのソフトウェアをダウンロードするほとんどすべての人が、それを駆動するコードに完全にアクセスできることを意味します。 JavaScriptがWebブラウザの境界の外でも実行できるという事実は、単に多くの非拡張コードが存在するためであっても、セキュリティをより重要なトピックにします。ブラウザでは、JavaScriptは通常「サンドボックス化された」ため、いくつかの欠陥がない限り、システムにとって比較的安全です。ただし、JavaScriptがネイティブシステムAPIと相互作用できるように、PhoneGap、Cordova、Node WebKitなど、現在標準化されたAPIを備えた多くのフレームワークがあります。これらは、JavaScriptアプリケーション開発者に優れた柔軟性と機能を提供します。たとえば、ハードドライブでファイルを読み取り、書き込むことができるHTML5およびJavaScriptデスクトップソフトウェアを作成したり、カメラへのアクセス、電話情報、WiFi、Bluetoothなど、GPS、GPS、等これらすべてを一緒に追加すると、潜在的なハッカーにかなりのソースコードの遊び場が提供されます。
JavaScriptの混乱の役割は何ですか?
開発者は、クライアントJavaScriptのセキュリティに関して100%の保護を確保することはできません。つまり、JavaScriptの難読化がここで役割を果たしています。難読化とは、コードを体系的に調べ、それを変換および再配置するプロセスであり、肉眼で読み、理解することをほとんど不可能にすることを目的としていますが、同時にその機能を保持することを目標としています。 (注:縮小は難読化とは異なります。削除コードから元のコードを簡単に取得できます。)その制限は、サーバー上のすべてのコードをロックすることに加えて、開発者がJavaScriptコードを保護することです。しかし、すべての難読化が実際にあなたのコードを保護するわけではありません。
右のJavaScript obfuscatorなどを選択
は、数十の難読化されたプログラムに直面していますが、自分に合ったプログラムをどのように選択しますか?選択するときは、次のポイントを検討してください。
ソースをダウンロード。おそらく最も重要な考慮事項は、ソフトウェアをダウンロードする場所です。このアドバイスは、Webからダウンロードするほとんどすべてのものに適用する必要があります。ダウンロードソースの評判を常に確認してください。 「なぜ無料のObfuscatorは必ずしも無料ではない理由」で、Peter Gramantikは「無料」JavaScript Obfuscatorを使用した経験を説明しています。彼は、コードがどのように難読化されているかを説明していますが、プログラムは独自の悪意のあるコードも挿入しています。彼が実際に何が起こっているのかを見るための抗buscationコードを持っていなかったら、彼はそれに気付かないでしょう。ストーリーの意味:ソフトウェアをダウンロードする場所について常に懐疑的です。
互換性。次に探すべき最も重要な機能は、互換性です。選択したプログラムが使用するライブラリと互換性があることを確認してください。これを行わない場合、コードIT出力が機能しなくなる可能性があり、必要以上にエラーの追跡と修正にもっと時間を費やす必要がある場合があります。
その他の機能と柔軟性。注意すべきその他のことは、あなたが選択したプログラムが提供する可能性のある追加機能と保護の弾力性です。一部のサービスはプロフェッショナル統合パッケージに含まれています。一部のサービスは、難読化以外の追加機能を提供することもあります。これらの機能により、アプリの保護が数分以内に簡単に逆転しないようにし、アプリでライセンスを実施するのに役立つこともできます。たとえば、JavaScript Protection Company JScramblerが提供しています
JavaScriptの使用の増加は大きな希望をもたらしますが、その説明的な機能と使用量もリスクを高めます。しかし、ビジネスのリスクを減らすためにできることはたくさんあるので、それはひどいものである必要はありません。敏感なクライアント側のJavaScriptコードがあり、そのコードが改ざんされないようにしたい場合は、必要なセキュリティの追加レイヤーを提供するために最良のJavaScript保護に投資する価値があります。 jscramblerが提供するコンテンツの一部をご覧になりたい場合は、www.jscrambler.comにアクセスして無料トライアルに登録してください。
クライアントJavaScriptセキュリティに関するFAQクライアントJavaScriptに関連する一般的なセキュリティリスクは何ですか?
JavaScriptコードの保護には、複数の戦略が含まれます。 1つは難読化であり、これにより、コードが理解して動作するのが難しくなります。縮小(コード内の不要な文字を削除する)も、潜在的な泥棒を防ぐことができます。さらに、HTTPSを使用すると、中間の攻撃を防ぐことができ、攻撃者は傍受し、コードを変更する可能性があります。最後に、コンテンツセキュリティポリシー(CSP)を使用して、スクリプトをロードできる場所を制限し、XSS攻撃のリスクを減らすことを検討します。
クライアント保護はどのように機能しますか?
2021年にJavaScriptを保護するためにどのようなステップを踏むことができますか?
クロスサイトスクリプト(XSS)攻撃を防ぐ方法は?
JavaScriptセキュリティにおけるHTTPSの役割は何ですか?
CSRF攻撃の防止には、複数の戦略が含まれます。 1つは、各ユーザーセッションに関連付けられた一意のランダム値である抗CSRFトークンを使用することです。これらのトークンはすべての状態変更リクエストに含まれており、サーバーはユーザーのセッションと一致することを確認するためにそれらをチェックします。別の戦略は、Samesite Cookie属性を使用することです。これにより、ブラウザがクロスサイトのリクエストとともにCookieを送信できません。
CSPは、ブラウザが実行可能なスクリプトの有効なソースとして考慮すべきドメインを指定できるセキュリティ機能です。これは、攻撃者が悪意のあるスクリプトをWebページに注入するのが難しいため、XSS攻撃を防ぐのに役立ちます。 CSPの実装は、JavaScriptを使用するアプリケーションだけでなく、すべてのWebアプリケーションにとってベストプラクティスです。
JavaScriptライブラリとフレームワークが、最新のセキュリティパッチの恩恵を受けるための定期的な更新を含めて安全であることを確認してください。また、SnykやImpervaなどのツールを使用して、依存関係の脆弱性を自動的にチェックすることを検討してください。最後に、安全なコーディングベストプラクティスに従って、新しい脆弱性がコードに導入されないようにします。
以上がクライアント側のJavaScriptセキュリティの重要性の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。