2013-03-27 4 views
18

プロダクションウェブサイトをデバッグしたいのですが、私はサーバー上にマップファイルをアップロードしたくありません。 。javascriptソースマップ:デバッグプロダクション用のjavascriptにのみローカルのマップファイルを保存

可能ですか?

+3

マップファイルのプライバシーに関する懸念はありますか?JavaScriptのコードはすべて公開されていると考えていますか? – Quantastical

答えて

16

現在のところ、ソースマップをローカルファイルから読み込むことを許可しているブラウザはありません。そのため、ソースマップを何とかオンラインにする必要があります。

ローカルネットワーク以外のクライアントにソースマップ(および元のソースファイル)へのアクセスを制限する.htaccessファイル(またはApacheを使用していない場合は同様のもの)を作成する方法もあります。

セキュリティ上の理由からソースマップへのアクセスを防止したい場合、達成するのはすべて誤った安全感です。 Javascriptは公開されており、暗号化されて暗号化されていても、暗号化を解除するのはかなり簡単です。 はありませんあなたのJavaScriptの任意の機密データを入れてください。たとえあなたがそれを縮小して暗号化したとしても。

+1

暗号化されていると実行されません。私はあなたが[難読化](https://en.wikipedia.org/wiki/Obfuscation_%28software%29)を意味すると思いますか? –

+0

難読化はもちろん、コードを美化器に渡すだけで解決できるかもしれませんが、あなたの考えがどんなものであっても、すべてのコードとデータを依然としてクライアントに送るということが私の主張です。だから、何らかの驚異的な暗号化方式を作成しても、クライアントに暗号化を解除する方法を送信する必要があります。そうしないと、クライアントはそれを実行できなくなります。攻撃者は、「秘密」データが暗号化されていない場合に、いつかブレークポイントを設定する必要があります。 – AHM

+0

機密データを隠すことではなく、機能を取り除くために必要な労力を引き上げることです。 – caesay

4

あなた

Multi-level Source Mapsのために役に立つかもしれません後 - CSS忍者

リンクは、入力ソースマップを指定することが可能なUglifyJS2を使用して説明しています。しかし、私は地元の入力ソースも

でテストしていません、あなたはローカル上のファイルをホスティングしてlocalhostlocal.mydomain.comのようなものを指すようにhostsファイルを変更してみてください。そして、ソースルートとしてlocal.mydomain.com/js/my-orig-js-file.jsを指定してください。

0

マップファイルと縮小されたjをサーバーにアップロードし、元のjsファイルをローカルに保持する方法もあります。次に、マップファイルを次のように変更します。

{ 
    "version":3, 
    "sources":["http://localhost/library.js"], 
    "names":["example","console","log"], 
    "mappings":"AAAA,QAASA,YACRC,QAAQC,IAAI","file":"script.min.js" 
} 
関連する問題