• ベストアンサー

HTML,JSの隠蔽

http://www11.plala.or.jp/ochiai/2nd/web_tech/wrap/index.htm こちらのサンプルデータを使い、ソースを隠蔽していています URLから直にリファラ無し状態でアクセスしようとするとちゃんと防げるのですが IEではリファラを与える簡単な方法がないのでいいのですが chrome firefox(もしかしたら他のブラウザでも)のソースビューワで覗くと 外部ファイルを参照しているsrcにアンカーがふられて、そこからリファラ込でリクエストが送られているのか簡単に見られてしまって意味が無い状態になってしまいます おそらくこれがあるためにIE以外のブラウザを弾くサンプルがあるんだと思いますが、アンカーをつけさせないようにソースを書く方法はありませんか? ※リファラを与えればダウンロードツールなどで落とせてしまうのは知っています

質問者が選んだベストアンサー

  • ベストアンサー
  • LOHA
  • ベストアンサー率52% (203/388)
回答No.1

うーん、潔く隠蔽するのを諦めた方がいいと思うんですけどね…。 そもそもJavascriptを覗きたい人は、それなりの知識持っている人でしょうから、意味ない気がしますね。 ちなみに、IEでしか見れないって言われたら、私は95%見ません。 ブラウザ限定はユーザビリティ的に論外だと思います。 そもそも論ですが、Javascriptはクライアント側で実行されるため、どうやったとしてもクライアントはデータをダウンロードすることになるわけです。 そのため隠蔽は不可能でしょう。 改行やスペースを消す、変数名を短くするなどの難読化はサイズ縮小にもなりますし、かなりありだと思います(実際googleも縮小されてますし、jQueryなどにしても縮小版がおいてあります)。 以上参考になったら幸いです。

参考URL:
http://ecs.amonya.com/javascript/
mania11
質問者

補足

ちょっと手間をかければ保存が可能だったりなど そのあたりは理解しています ですが、せっかく少し手間をかけて隠蔽をしたのに ソースビューワから一発、と言うのがどうにも、と言う感じです なのでソースビューワにリンクとして解釈されない書き方があったら、と考えていました 今回隠蔽しようとしていたものは、データテーブルなので 普通の難読化ではほとんど形が残ってしまって 意味があまりないものなのです

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.3

普通のソースを隠したいという質問なら、ウェブとは何かの説教をして、一切アドバイスしないのですが、クイズのようなもので、答えがあらかじめ分かってしまったら面白くないという意味でしたら。  この場合(HTML,JavaScript)は無理です。端末に中身をテキストで示して実行させることが目的なのですからね。  方法は、CGI、java(JSではなくアップレット)、flashなどの技術を使うことになりますね。  jsだけで実装したければ、面倒でもページを分割して、formの入力をQUERY_STRINGSに代入して次のページを読むとか・・・

全文を見る
すると、全ての回答が全文表示されます。
  • LOHA
  • ベストアンサー率52% (203/388)
回答No.2

なるほど。 でもCGIが使える環境なのでしたら、最初からCGIを使えばいいと思います。 例えばクイズで、答えが見えるのを防ぎたい、でもいちいちCGIにリクエスト出すのにリロードなんてさせたくない、というのであれば、まさにAjaxがうってつけで、JavascriptからCGIを呼び出すようにすればよいでしょう。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • HTML文をなんとか隠蔽したいのですが

    こんにちは。ぜひ教えていただければ幸いです。 以下のようなソースを作りました。(行頭の数字は便宜上つけた行番号ですので、実際のソースには含まれません) (PHP Ver.4.3.11 , OS / FedoraCore3 , ファイル名"hoge.php"として保存、実行) 1 <html> 2 <FORM METHOD="post" action="<?php print $_SERVER['PHP_SELF']; ?>" NAME="form"> 3 if ($hoge != ""){ 4 <INPUT TYPE="hidden" NAME="hoge" VALUE="<?php print($hoge); ?>">} 5 </html> 以上を実行すると、 if ($hoge != ""){ } のようにブラウザ(IE6)上にソースの一部が露出してしまいます。 そこで、「PHPで隠蔽できないだろうか」と思い、以下のように加工しました。 (加工前) 3 if ($hoge != ""){ 4 <INPUT TYPE="hidden" NAME="hoge" VALUE="<?php print($hoge); ?>">} (加工後) 3 <?php if ($hoge != ""){?> 4 <INPUT TYPE="hidden" NAME="hoge" VALUE="<?php print($hoge); ?>"> <?php}?> が、以下のようなエラーになってしまいます。 Parse error: parse error, unexpected '}' in もし、このプログラムで、ソースをうまく隠すことができる方法を ご存知でしたら、ぜひ教えていただければ嬉しく思います。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 【HTML】src属性のURI値でhttpの記述を省いてもいいの?

    最近のブラウザでは、 <img src="//hogehoge.com/~"> というように、src属性のURI値で、"//"から記述するとブラウザ側で 表示されているURLのプロトコル(httpかhttps)を自動的に 判別して解釈してくれるようです。 (IE6以降、FireFox,Opera,Safari,Chromeで確認済み) いちいちjavascriptとかでhttpかhttpsの判別をコントロールしなくても 良いので楽なのですが、W3Cで推奨されている(非推奨ではない)記述方法として今後も使っても問題ないのでしょうか?

  • Perlのコードを隠蔽する

    Perlのソースコードを隠蔽する&ActivePerlなどがない環境でも動くようにperl2exeを使って変換して配布しようと思っています。 逆コンパイラされる可能性が0ではないことはわかっています。 しかし、下記コードの実行がなかなかうまくいきません。実際の.plでの起動時ではうまくいくのですが、.exeに変換するとうまくいかないようです。回避方法を教えてください。 -------------------- use HTTP::Request::Common qw(POST); use LWP::UserAgent; my $ua = LWP::UserAgent->new; my %loginform = ('mail' => 'hogehoge@hoge.jp', 'password' => 'hogehoge'); my $request = POST('https://****/login', [%loginform]); my $res = $ua->request($request); my $cookie = $res->header('Set-Cookie'); --------------------

  • basic環境下で外部jsが読めない

    youtubeのAPIや、Twitter、facebook、mixiのいいねボタンなどを読み込んでいるページがあります。 これをbasic環境に置いてテストをしているのですが、IEやFirefoxでは問題なく動作しているのに、 Chromeに限って読み込めないという状態になっています。 特殊なテスト環境のため、そちらが原因と言う可能性もありますが、 可能性として、他ブラウザでOKなのにChromeに限ってダメ、という事例があれば知りたいです。 状況としては、 Twitterなどの公式ボタン(公式のタグ)3種、 グーグルアナリティクス、ビジョナーリスト(tracer.jp) その他特定外部サイトの動画埋め込みタグなど。 このうち、他ブラウザでは読み込めて、Chromeのコンソールで[blocked]とエラー表示されているのが、mixiチェックボタン、動画の埋め込みタグ、ビジョナーリストの各javascript(いずれも各公式サイトから読み込み)です。

  • HTML5について

    前回質問したのですが解決せず、日にちがだいぶたってしまったので、 再度質問させて下さい。 IE8以前にに新しい要素を認識させる方法として <!--[if lt IE 9]> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> があると知ったのですが、 これを<head>内に記述すると、当然きちんと認識されるのですが、 画面を見た時に一番上に<!--[if lt IE9]> <![endif]--> と表示されてしまいます。 ・・・この文字は消せないのでしょうか? 使用しているブラウザはIE8とIE6です。 【HTMLソース】 <!DOCTYPE html> <html> <head> <!--[if lt IE9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link rel="stylesheet" type="text/css" href="style_html.css" /> <link rel="stylesheet" type="text/css" href="style.css" /> <meta charset="shift_jis" /> <title>HTML5</title> </head> <body> <h1>HTML5</h1> <section> <h2>タイトルなんちゃら</h2> <p>あけましておもでとうございます。今年もよろしくお願い致します。</p> </section> </body> </html> ・・・・・・どこが間違っているのか分からず困っています。 ご指摘どうぞよろしくお願い致します。

    • ベストアンサー
    • HTML
  • openはリファラが付くか

    ブラウザはIEで、window.open("http://www.yahoo.com/a.cgi")で開いた場合、 a.cgiにこのソースが書いてあるHTMLファイルのアドレスはリファラとして通知されますか?

  • IE9で動画部分が真っ白になる。

    IE9で動画が見れず、困っています。 OS:Windows7 HP 現在HTML5でHPを作成し、ページ内に動画をvideoタグで埋め込みましたが動画部分のみ真っ白になってしまいます。(画像添付しております。) 色々調べて試してみたのですが、どれも上手くいきませんでした。 ・IEのキャッシュ全消去 ・.htaccessに動画読み込み設定追記 ・videoタグの直前に<!DOCTYPE html>を追記 ・typeタグを削除 ・プレイヤー最新に更新 動画は各ブラウザに対応するために以下の様に記述しています。 ------略------------ <source src="test.mp4" /><!--IE・Safari向け--> <source src="test.ogv" /><!--Firefox・Opera向け--> <source src="test.webm" /><!--Google Chrome・Opera向け--> ------------------------ Chromeとfirefoxでは見ることが出来ますが、IEだとローカル環境でも動かず真っ白で自力では解決することが出来ないと思い、質問させていただきました。 拙い文章で申し訳ございませんが、お力添えいただければ幸いです。 宜しくお願いします。

    • ベストアンサー
    • HTML
  • Safari WinXP リファラを有効にする方法教えてください。

    大人には聞こえない音/聴力検査FLASH (Mosquito Sound)​ http://itsd210.s24.xrea.com/ja/mosquito_sound/ のページをSafariで見ようとしたところ、  『リファラを有効にしてリロードしてください。』 のメッセージがフラッシュの部分に出て操作できません。(音が聞けません)。 以下のブラウザでは機能します。 IE8,Chrome,Firefox,Opera Safariはいつも使用しているブラウザなので、「リファラを有効」にしたいのですが、方法が不明。【設定】を一通りみてみてもそれらしいものはないし、「リファラを有効」で検索してもましたが、よく分かりませんでした。 (フラッシュも再インストールしてみましたが、ダメ。) 初心者の私に教えていただける親切な方いらっしゃいましたら、お願いします。 環境 Windows XP Home Edition SP3 Safari 4.02 Norton Inernet Security 2009(関係ないと思いますが一応)

  • IEで、リファラを送信する、しないの設定方法について

    サイトのお問い合わせフォーラムで、問い合わせメールを送信しようとしたのですが、「リファラを確認できなかったため、フォーム送信が中断されました。」と表示されて、送信できません。 ブラウザはIE7です。 リファラを送信するように設定する方法を教えていただけますか。

  • サイトをshift-jisからutf-8に変更時のjsフィルのエンコードについて

    いつもお世話になっています。回答者様の暖かく賢いアドバイスによってホームページを無事shift-jisからutf-8に変更することができました。 現状、opera、ie6、ie7で確認した上では動作上は全く問題ないようなのですが、一点気になることがあって質問させていただきます。 htmlソースをutf-8にするにあたってcss、cgi、jsファイルも同様のutf-8に変更するべきだと思い作業をしていましたが、添付の2ファイルについてだけ、いくら試しても保存後にshift-jisに戻ってしまいます。変更はdreamweaver、hidemaruエディタで試しました。 添付ファイル http://www.ucatv.ne.jp/~h_p_s/sample/rollover.js http://www.ucatv.ne.jp/~h_p_s/sample/swfobject.js 1)現状動作はできていますが、このまま2ファイルだけshift-jisのままでも問題ないのでしょうか?SEOの点からもご意見をお聞かせいただければありがたいです。 2)変更すべきである場合、変更の仕方はどのようにしたらいいのでしょうか? 以上よろしくお願いします。 補足として、これが意味があるのか分かりませんがhtmlソース内 <script type="text/javascript" src="swfobject.js"></script> 等は <script type="text/javascript" src="swfobject.js" charset="UTF-8"></script> のように書き換えています。ブラウザ上では記入前後で何も変わりがありませんでしたが。

このQ&Aのポイント
  • アルミダイカスト品の耐久試験で破壊した際、破面には黒いしみが点在していることが観察されました。
  • 分析結果では、黒いしみには酸素とアルミニウムが検出されました。
  • 黒いしみは繰り返し負荷を与えた際に摩擦部が酸化して黒くなったものと考えられます。
回答を見る