1

私は、セキュリティで保護する必要があるクライアント側コード (具体的には js) を使用するアプリケーションを開発中です。つまり、ユーザーがコードを盗んで再利用できないようにするためです。コードを (暗号化で) 完全に保護する必要があるため、難読化はオプションではありません。js 暗号化を可能にするソリューションを求めてインターネットを広範囲に調査した結果、セキュリティを確保するために、この独自のコードはサーバー側でのみ実行できるという結論に達しました。

jsを使用してクライアントで実行できることをサーバーが処理する必要がなくなるような、他のアイデアや解決策はありますか。サーバー上でコードの一部を実行することはオプションですが、リソースは限られています。もう 1 つの問題は、「サーバー サイド js」のようなものにする必要があることです。つまり、ユーザー エクスペリエンスは変更されません。

4

5 に答える 5

2

コードがクライアント側の場合、コードがあります。限目。それがインターネットのしくみです。

エンドユーザーから保護したい場合は、はい、それをサーバー側に保持する必要があります。残念ながら、それはユーザーエクスペリエンスを変えるでしょう. これを回避する方法は実際にはありませんが、おそらく賢明な AJAX 呼び出しを介して、満足のいく媒体を見つけることができます。

于 2011-03-29T16:47:07.053 に答える
2

いいえ、あなたは物事の要点をかなり理解しているようです。サーバーを使用して、安全に実行する必要があるすべての処理を行います。サーバーから送信されたデータを表示するには、javascript を使用します。

どのアプリケーションに取り組んでいるかはわかりませんが、通常、重要な処理をクライアント側にオフロードしようとすると、大量のデータ転送が必要になるため、サーバーは長期的にはより多くの作業を行う必要があります。クライアント側でどのような処理をしたいですか?

于 2011-03-29T16:48:04.297 に答える
1

サーバー側のソリューションでは、ユーザー エクスペリエンスを変更する必要があります。単純に、別のボックスでコードを実行し、その間にネットワークが存在するという事実だけです。レイテンシー異なります。もちろんそれで十分かもしれませんが、それがどんなアプリなのかを知らなければ何とも言えません。

私が想像できる最も近いのは、安全なアプリケーション内である種の JavaScript エンジンをホストすることです. 基本的に、ローカルで実行する場合は、コードを実行する必要があります...つまり、検査できるということです。あなたができることは、それを難し​​くすることだけです。

于 2011-03-29T16:49:18.030 に答える
0

JavaScript を暗号化してから、クライアント側で復号化して評価することができます。プライベート アプリケーションの場合、暗号化にパスワードを使用できるため、パスワードを持たない人は復号化できません。それ以外の場合は、非常に複雑にする必要があります。

于 2011-03-29T16:47:09.700 に答える
-1

たとえばここで説明されている標準の JS 難読化とは別に: https://stackoverflow.com/questions/2285593/how-to-sell-and-protect-software-that-has-easily-visible-source-like-javascript これは不可能に近い。

そもそもクライアント側のコードを保護する必要があるかどうか、私は疑問に思う傾向があります。これが必要なほどユニークな理由は何ですか?いずれの難読化方法も常に不完全な保護にすぎないため、あらゆる種類の機密データ操作はサーバー側で行う必要があります。

于 2011-03-29T16:48:11.993 に答える