タグ

ブックマーク / www.broadband-xp.com (4)

  • JavaScript難読化「URLエンコードを利用する」

    6.URLエンコードを利用する 5-1のソースを元に、更なる難読化の方法を考えてみたいと思います。URLエンコードを利用すると、すべての文字が「%82」など「%」と英数字・アンダーバーなどになります。これを元に戻すには、unescapeメソッドでデコードするだけですから、それほど難しいわけではありませんが、初心者・中級者にだましのごとく効果的です。 例を出して考えてみましょう。非常に単純なJavascript「if(a>5){alert("abc");}」という文字列をescapeしてみます。下記のフォームにコピー&ペーストしてみてください。 「if%28a%3E5%29%7Balert%28%22abc%22%29%3B%7D」になりましたね。もちろん、このまま、元のソースと差し替えても動きません。「unescape("if%28a%3E5%29%7Balert%28%22abc%22

  • JavaScript難読化処理のためのヒント

    ※ ただのサンプルですので、実際には、データがサーバに送信されることはありませんが、JavaScriptによる入力チェックはなされます。 ↑上のフォームは、よく見かける入力フォームです。JavaScriptによるチェックを入れています。下記のようなソースになりますが、これを題材に難読化処理のためのヒントをいくつかご紹介していきたいと思います。 (※ なお、題とはずれますが、JavaScriptによる入力チェックはあくまでもユーザーに便宜を与えるものであり、ここでOKになったからといって、サーバ側のプログラム(Perl/PHP/JSP/ASPなど)での入力チェックが必須であることは言うまでもありません。 ※ また、実際には、JavaScriptでlengthチェックを行ったり、「フリガナ」に使用できる文字を限定させたりする処理を追加することは可能ですが、冗長になり、サンプルとしては不適なた

  • JavaScript難読化「日本語メッセージを英数字だけの文字列に変換する」

    【BB.excite】Bフレッツ 接続料無料キャンペーン実施中! (5月31日まで) 2.日語メッセージを英数字だけの文字列に変換する 他人が書いたJavaScriptを解析する際に、その取っ掛かりとして、エラーメッセージを中心に見ていくことにより、プログラムの特定個所が、どのあたりの処理にかかわるものであるかを類推する方法があります。例えば、いくら先程のページのように改行がないソースに仕上げても、「名前を入力してください。」「フリガナは必須です。」などの日語メッセージは丸丸残っています。これでは、この日語メッセージを中心に、どの「{」と「}」が呼応するかなどを読み解かれ、改行・インデントつきの読みやすいソースに「逆戻し」されやすくなります。 そこで、これらの日語をASCII文字(英数字only)にすることを考えます。String.fromCharCode()メソッドを使います。例

  • baseタグを使って、画像やJSファイル・CSSファイルのパスを分かりにくくする方法

    右クリックを禁止しても、基的には、HTMLソースを見られてしまえば「終わり」という事態が発生しえます。しかしながら、HTMLソース全体を暗号化すると、SEOへの影響が心配だったり、「ちょこっと文字を修正したい場合などに大変」とか問題もあります。ただ、プロテクトしたいコンテンツがHTMLソースそのものであったり、テキスト文ではなくて、画像ファイルやJSファイル(JavaScript)、CSSファイル(スタイルシート)である場合、baseタグを使って、これららをプロテクトする方法があります。 1.そもそもbaseタグとは? baseタグによって、リンク先や画像などのパスの基準となるURLを指定できます。例えば、このページでは、 <base href="http://www.broadband-xp.com/hidesource/base123/"> としています。 そして、下記の画像: を

  • 1