1

ユーザーがソースを表示できないようにしたくないので、この質問は異なります。プログラムでソースコードの一部を隠したい。「重複した」質問はこれに対処せず、この質問の回答のいくつかはこれに対処し始めます。

スクリプトの読み込みが完了した後、JavaScriptでコードを非表示にすることは可能ですか?制限のあるライセンス制度の外で、自分のスクリプトをピアリングの目から保護したいと思います。

ライブラリによっては、コードを削除すると、静的シェルを残してページのインタラクティブな部分が無効になると思います。しかし、人々/業界はこの問題にどのように取り組んでいますか?

裁判所が施行したライセンス制度と著作権登録だけですか?または、クライアント側のJavaScriptに関してソフトウェアで実行できるもっと賢いものはありますか

4

6 に答える 6

2

ブラウザが必要とするため、すべてのソースコードを非表示にすることはできません。FirebugまたはDOMインスペクターがどのように機能するかを考えてください。何かを変更すると、ブラウザ画面に表示される内容に影響します。しかし、それを「ちょっと見えない」または「ほとんど読めない」ようにする方法があります。たとえば、その場でスクリプトを作成する開発ツールやスクリプトを使用する場合です。

私のサイト http://elmin.orgを見て、ソースコードを読んでみてください。ご覧のように、あまり見ることができず、見ても複雑すぎて分析や理解ができません。この場合、グーグルウェブツールキットが使用されます。

上で指摘したように、コードを難読化することは解決策ですが、それだけでは十分ではありません。難しいのですが、プログラマーがコードを解読してスクリプトを「盗む」可能性があるからです。

コードを埋め込んだページの外部から外部のjsファイルへのアクセスを制限するのが1つのアイデアだと思います。したがって、誰かがブラウザでそのファイルにアクセスしようとすると、スクリプトソースへのアクセスが拒否されます。PHPまたは使用しているサーバーサイド言語では、request_uriサーバー変数をドメインと比較することでアクセスを制御できます。

ただし、コードを難読化するリスクを認識する必要があります。はっきりと読めるJavaScriptスニペットに取って代わると想像してみてください。

window.onload = function() { alert("Hi " + username) };

に:

eval(unescape("var%20_0xc5b2%3D%5B%22onload%22%2C%22Hi%20%22%5D%3Bwindow"+
"%5B_0xc5b2%5B0%5D%5D%3Dfunction%20%28%29%7Balert%28_0xc5b2%5B1%5D+username"+
"%29%3B%7D%20%3B"));

リスクは、多くのウイルス対策ソフトウェアまたは他のオンライン保護ソフトウェアが、そこにあるjavascriptコードが何か有害なことをしようとしているかどうかを検出できないため、安全ではないことを訪問者に警告する可能性があることです。そのため、検証に失敗する可能性があります。

于 2013-02-20T23:45:20.003 に答える
1

あなたが得ようとしている最良のものは、UglifyJSのようなミニファイアを使用することです。コードが難読化され、人々が読みにくくなりますが、非表示にすることはできません。すべてのコードはプレーンテキストでブラウザに転送されるため、コードを解釈でき、ブラウザがユーザーの表示を妨げる​​ことはありません。

于 2013-02-20T23:37:11.527 に答える
1

スクリプトの読み込みが完了した後、JavaScriptでコードを非表示にすることは可能ですか?

=>いいえ

コードを削除すると、静的シェルを残してページのインタラクティブな部分が無効になると思います

=> HTML構造からスクリプトタグを削除することもできますが、コードはすでに解析されているため、インタラクティブな部分は引き続き機能します

クライアント側のJavaScriptに関してソフトウェアで実行できるもっと賢いものはありますか

=>とにかく、人々はすでにjQuery、バックボーン、その他のライブラリを持っているので、人々があなたの縮小されたコードを読むことができ、それを解読するのに多くの時間を費やさないことを受け入れます。現在のバージョンを非表示にしようとするのではなく、より良いvnextに貴重な時間を費やしてください。

于 2013-02-21T00:31:25.013 に答える
0

実行後にコードを非表示にする方法はありませんが、簡単にわかりにくくすることができます。

于 2013-02-20T23:37:18.740 に答える
0

それは不可能です...または方法があったとしても、あなたのコードに興味があるのはプログラマーだけなので、それは部分的なものになります...したがって、彼らはjsを実行せずにあなたのページをロードする必要がありますソースを入手...ごめんなさい:/

「コードが難読化され、人々が読みにくくなります」ほとんどのテキストエディタまたはWebブラウザには構文の強調表示とインデントがあるため、解決策ではありません。(私は誤解しました)はい、それは解決策です

于 2013-02-20T23:40:53.973 に答える
0

いいえ。

そのため、PHPにはその意味で大きな利点があります。つまり、サーバー側で実行されるため、視聴者は終了マークアップを生成したコードを見ることができません。しかし、誤解しないでください。PHPには、MySQLインジェクション攻撃などの独自のセキュリティ問題があります。

于 2013-02-20T23:46:29.927 に答える