2017-04-23 19 views
0

HTML5コードは、「要素の検査」または「ソース」から取得して簡単に表示できます。Webアプリケーションコードを完全に隠す方法はありますか?

Webアプリケーションのコードをブラウザから完全にクライアント側に隠す方法があるのか​​どうか疑問に思っています。

すべての言語が歓迎されているため、埋め込みアプリケーション(Javaアプレットなど)は使用できます。この問題にアプローチするための巧妙な方法はありますか?

+1

バックエンドコードはい。フロントエンドコード番号しかし、フロントエンドコードを理解するのをより困難にする方法(縮小、難読化など) –

答えて

2

ようなフレームワークが自動的にHTMLを生成しながら、ビジネス・ロジックのみが完全にJavaで書かれたサーバー上に住んでいるVaadin、CSSやJavaScript、DOM、AJAXなどのサーバー側指向のWebアプリケーションフレームワークを使用Vaadin

、 Webブラウザ内でプレゼンテーションするために必要なWebSocketコードは、重要なコードを多く隠蔽します。

ユーザーは自動的に生成されたHTMLやJavaScriptなどを見ることができますが、あまり意味はありません。

ハッカーはクライアント側のコードを操作することができますが、あまり効果はありません。例えば、ハッカーは、ポップアップメニューの値を定義するHTML/JavaScriptを変更して、別の意図しない項目を追加することができます。しかし、サーバー上のJavaコードが予期しない値をチェックして障害を処理したり、例外をスローすることができます。

そして、Vaadinは、クライアントとサーバーが完全に同期していることを確認するために整合性テストを実行します。クライアントサイドのコードをハッキングすると、それらを急速に同期させない可能性があります。

1

フロントエンドコードを完全に非表示にすることは不可能です。なぜなら、ユーザーのブラウザはコードを読み取って実行できる必要があるからです。この問題はウェブに限られていません。ネイティブのバイナリでさえもdisassemblerで検査できます。ユーザーのCPUがコードを解釈できなければなりません。十分に熟練した攻撃者も同様に解釈できます。

しかし、コードを難読化すると、読みにくくなる可能性があります。 JavaScriptは、パフォーマンス上の理由から、生産に投入される前に縮小されることがよくあります。これはまた、機能性をあいまいにする基本的なレベルを提供し、熟練度の低い、または意欲の低い攻撃者からの保護を提供します。 Google's list of minifiy resourcesは良いスタート地点です。

関連する問題