none
aspxファイルのエンコード実施方法 RRS feed

  • 質問

  • メリークリスマス♪

    その昔、ASPファイルに対して「Script Encoder」を用いてエンコードをかけておりました。
    現在、ASP.NETに移行しておりますが、同様にエンコード等出来ないものかと調査しております。

    Dotfuscator等で、DLLやEXEの難読化は実施可能ですが、
    [.aspx]に対して、エンコードなり難読化なり実施したいのです。

    皆様、ご存じでしたらご教授頂きたく、お願い致します。

    2010年12月24日 1:51

回答

  • aspxファイルは実行時にコンパイルされます。
    エンコード等してそのコンパイルが正しくとおるようにできるかどうか。。。

    難読化というかaspxファイルの中身が見えることが問題なのであれば、事前コンパイルをおすすめします。
    この場合、aspxファイルをふくめてすべてdllにしてしまうことで、aspxファイルそのものがない状態で運用することができます。

     


    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    • 回答としてマーク 寒鰤 2010年12月27日 1:08
    2010年12月24日 2:25
  • えーっと、動作確認とかせず本番環境をころころと置き換えていくのでしょうか? しかもコードは見られたくない、と。

    まずASP.NETはファイルを置き換えると再起動してしまう気がします。そうでないにしても当該ページを閲覧中のブラウザは路頭に迷うでしょう。

    それから開発中もサーバーに適用していくとなるとコードを保護するのは難しいのではないでしょうか。難読化する品質でもないと思いますし…。そういった場合はNDAなりなんなり別の方法を取るように思います。

    • 回答としてマーク 寒鰤 2010年12月27日 1:08
    2010年12月24日 23:37

すべての返信

  • aspxファイルは実行時にコンパイルされます。
    エンコード等してそのコンパイルが正しくとおるようにできるかどうか。。。

    難読化というかaspxファイルの中身が見えることが問題なのであれば、事前コンパイルをおすすめします。
    この場合、aspxファイルをふくめてすべてdllにしてしまうことで、aspxファイルそのものがない状態で運用することができます。

     


    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    • 回答としてマーク 寒鰤 2010年12月27日 1:08
    2010年12月24日 2:25
  • 小野@どっとねっとふぁん さん
    ※いつも、ブログを参照させて頂いております。

    ご返信、ありがとうございます。
    「Aspnet_compiler.exe」を用いてaspxファイルも含めてdllに出来るんですね。
    勉強になりました。

    ご指摘の通り、
    「可能な限りaspxファイルの中身を見せたくない」
    ことに端を発しております。

    本来であれば、上記方法によりdll化し、難読化を施して運用できれば良いのですが。。。
    要望として、「aspxを動的にローディングしたい」というのがあります。
    (Webサイトプロジェクトで構築しております。)
    その為、dllにするのは難しい状態です。

    やはり、aspxに対して難読化やエンコード自体を行うのがナンセンスなのでしょうか。

    2010年12月24日 2:46
  • 「aspxを動的にローディング」が何を表しているのかわかりませんが、動的ローディングすることと、aspxファイルを削除可能にすることに何か関連があるのでしょうか?

    ただ、ブラウザ側から見ればhtmlファイルは見えているわけで、難読化を考えるのはナンセンスだとは思いますが。

    2010年12月24日 3:48
  • 佐祐理 さん

    ご返信、ありがとうございます。

    「aspxを動的にローディング」ですが、
    ご存知の通り、dllにしてしまうと、dllの変更・修正があった場合はIISの再起動が必要になります。
    推奨されないかもしれないですが、IISの再起動することなくコードの修正を
    反映させたいという要望があります。

    > ただ、ブラウザ側から見ればhtmlファイルは見えているわけで、難読化を考えるのはナンセンスだとは思いますが。
    仰る通りです。
    言葉足らずになってしまいましたが、サーバ上のコードに対してです。
    この場合、顧客先に導入したとして、可能な限りソースを見せたくないという要望からきております。

    2010年12月24日 4:11
  • よくわからないのですが、寒鰤さんのおっしゃる「aspxを動的ローディング」とは、ブラウザからリクエストが来た段階でaspxを編集してそれを返すもの、なのですか? しかも難読化されたままで編集する…。

    必要なコンテンツを返すコードを.aspx.csを記述すればいいように思いますが、あくまで.aspxを編集したいのでしょうか? というか複数ブラウザからリクエストが来たら競合しませんか?

    なぜhtmlは見えるのに、と書いたのか言葉足らずでした。ASP.NETではコンパイルを行うと.aspx.csファイルはdllに組み込まれ削除されます。通常サーバー側に見えるのは.aspxファイル、つまり.html部分だけになります。(そして消そうと思えば.aspxすらも消せる。)

    2010年12月24日 4:24
  • 度々、ありがとうございます。
    (蛇足になりますが、返信を頂けると相談を受け付けて頂いたようで大変嬉しく思います。)

    「aspxを動的にローディング」は、ブラウザのリクエスト有無に関係なく、
    開発側が修正したaspxをアプリサーバの再起動無く適時反映(ファイルの上書き)させる事を指します。

    コードビハインド(.aspx.cs)を使いたいのはやまやまなのですが。。
    aspからのマイグレーションで、コードビハインドを使用しないでaspをaspxに置き換えるようにしております。
    (先ずは.Net化したい!とのことから、コードビハインドの有用性を捨ててしまっている状態です。)

    その為、aspxにはhtml部分のみならずコードも含まれることになります。

    2010年12月24日 4:45
  • えーっと、動作確認とかせず本番環境をころころと置き換えていくのでしょうか? しかもコードは見られたくない、と。

    まずASP.NETはファイルを置き換えると再起動してしまう気がします。そうでないにしても当該ページを閲覧中のブラウザは路頭に迷うでしょう。

    それから開発中もサーバーに適用していくとなるとコードを保護するのは難しいのではないでしょうか。難読化する品質でもないと思いますし…。そういった場合はNDAなりなんなり別の方法を取るように思います。

    • 回答としてマーク 寒鰤 2010年12月27日 1:08
    2010年12月24日 23:37
  • ご返信遅くなりました。
    失礼致しました。

    仰る通りで、品質的にも難読化を要するものではありません。
    ASPでも仕込んでいたので同じ事をやるべきだ、との要望からでした。。。
    NDAに含めるよう、調整したいと思います。

    > そうでないにしても当該ページを閲覧中のブラウザは路頭に迷うでしょう。
    その辺りの検証が完全ではないので、今後詰めて行こうと思います。


    > 佐祐理 さん、小野@どっとねっとふぁん さん
    本件、お二人のお話を伺い、私の構成では技術的には難しいと判断しました。
    ご助言にもありました通り、別視点での対応を取ります。
    年末の多忙なところ、ご協力賜わり本当にありがとうございました。

    2011年がお二人、また閲覧頂いた皆様に実り多き1年になることを願いつつ失礼致します。

    それでは、良いお年を♪

    • 回答としてマーク 寒鰤 2010年12月27日 1:05
    • 回答としてマークされていない 寒鰤 2010年12月27日 1:07
    2010年12月27日 1:04