ここから本文です

ブラウザの「ソースを表示」でJavaScriptを表示しない方法はありますか? (変数...

pg0********さん

2013/10/1221:58:55

ブラウザの「ソースを表示」でJavaScriptを表示しない方法はありますか?
(変数や定数だけでも非表示にできませんか?)

普段、私が作っているWebサイトは、自分で書いたJavaScriptがそのままソースに出てしまいます。
外部ファイルにしていても、外部ファイルのリンクをソースからクリックされれば、そのまま表示されます。
(インデントも綺麗にそのまま出ます)

ところが、他のサイトのソースを見ていたら、JQueryやその他のプラグインを読みだしているコードはあるものの、
変数や定数が宣言されていない(どこで宣言しているのか全く分からない)状態になっていました。

例えば、jqueryのAjaxでpost送信をしているソースでは、
$.post(TEMPLATE_URL)... のように書いてあるのですが、TEMPLATE_URLが宣言(var TEMPLATE_URL= '')されている箇所がありません。
外部ファイルもチェックしましたが、そもそも「.js」ファイルはJQueryの大元ファイルと、common.jsという2つしかありません。
common.jsの上の方で、既にTEMPLATE_URLが使われていて、宣言している箇所が他にあるようにも見えません。

JavaScriptのコードを暗号化するようなツールがあるのは知っていますが、
コード自体は暗号化されておらず、値やurlがすべて定数(または変数)化されていて、その内容をどこでセットしているのかわからないといった状況です。
(文章でわかりづらいと思いますが、上記例で使用したソースコードは、ある企業の会員マイページで発見したものなので、ソースコードの添付ができません。)

あらかじめ、PHPなどで定数化したものをJavaScriptとして使っているのでしょうか。
(そんなことできるのですかっ?!)

ご存知の方がいれば、教えてください!
検索エンジンでも、どんなキーワードで検索すればよいのかわからずに困っています。
宜しくお願いします。

閲覧数:
15,491
回答数:
4
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

god********さん

2013/10/1302:43:52

JavaScriptコードを完全に見えなくすることは不可能ですが、人間に対して見えにくくすることはある程度可能です。
http://bytes.com/topic/javascript/insights/749685-hide-javascript-c...
まあJavaScriptの時間差表示みたいなもんです。



でもブラウザはJavaScriptがどんなコードであるのかは必ず知ってますので、ブラウザに対してそれを聞き出す術を知る人には、コードを隠す事は絶対に出来ません。またHTTP通信を解析出来る人にも秘匿は難しいでしょう。

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

rio********さん

編集あり2013/10/1313:02:02

JavaScript コードで動的にscript要素を挿入すれば、ブラウザの [ソースを表示] でJavaScriptコードを不可視にすることは可能です。
ただし、「Google Chrome Developer Tool」や「Firebug」等のJavaScriptデバッガで見れば一目瞭然ですから、見る人が見ればすぐわかります。

JavaScriptはクライアントサイドスクリプトですから、コードを読みにくくする事はできても読めなくすることは原理的にできません。
packerはコード圧縮する事で人間が読みにくくすることができますが、逆に「Javascript beautifier」のように圧縮されたコードを読みやすくすることも機械的に可能なのです。
http://jsbeautifier.org/

訪問者が読めてはいけないデータについてはサーバサイドに隠すことをお勧めします。

# Re: pg02_underlingさん

kiy********さん

2013/10/1308:35:49

① パッカーは下記
http://dean.edwards.name/packer/

② 下記を参照するといいと思います。
http://gogolounge.blog.shinobi.jp/hp%E4%BD%9C%E6%88%90%E6%94%AF%E6%...

③ スクリプトでのjsファイルの拡張子は .js である必要はなく、.cssでも
なんでも機能する点に注意が必要です。



<script src="./abc.css"></script>

また、Ajaxでスクリプトは読み込める点にも注意が必要です。

④ 複雑な構造にすれば、簡単にURLなどは知られない様にできると思います。
また、URLのエンコードやURL短縮などもあります。

⑤ Flashとjavascriptの連携
http://hakuhin.jp/as/javascript.html

Flashから変数を渡しているのかもしれませんね。

プロフィール画像

カテゴリマスター

sii********さん

2013/10/1302:59:34

それができたとしたら重大なセキュリティリスクを生じますので、証明はできませんがそのような方法は存在しないでしょう。知り得ない何かをされてるかもしれない、ということですので。

仰るようにソースが無いので検証することはできませんが、「どこかに」「何かが」あるはずで、それを見つけられていないだけと思います。

素人がパッと思いつく範囲では、別なフレームでも関係する処理をしているとか、実際は一部だけこっそり読めないようにしているとか、実は宣言しないでグローバル変数として使っているとか、関数の仮引数なので変数宣言はしていないとかとか。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる