• ベストアンサー

更新日時を偽装したい。方法はありますか?

トップページのcgiなのですが、セキュリティ上、なるべく、cgi動作だと分からせない(cgiという拡張子ではなく、htmlで動作させています。)ようにしたいのですが、、 javascript:alert(document.lastModified) を入力すると、更新日時が現在の時刻(HPを開いた時刻) となってしまい。 2度3度調べられると、これは、動的なHPだと分かってしまいます。 どのようにすれば、偽装、もしくは、更新日時を示さないようにすることができますか? 宜しくお願い致します。

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

  • ベストアンサー
  • akanekor
  • ベストアンサー率52% (102/194)
回答No.5

>JavaScriptを使わない方法でも確か、更新日時を知る方法 ウェブサイト巡回ソフトによる、取得ですよね? それって、HEAD リクエスト投げてきますから、 http://www.koizuka.jp/~doggie/wwwd-handbook.html こんな感じで、Last-Modified出力する所で、偽の時刻生成して返してみては、 けどIEの挙動は、元がCGIだった場合、確認のリクエスト投げずに表示してるぽい、 (LAN抜いても、平気で時刻変えて返してくる、、(==; ) ので、No4の処理も入れといてくださいな。

ayu_mi_nic
質問者

お礼

回答いただきありがとうございました!!

その他の回答 (4)

  • akanekor
  • ベストアンサー率52% (102/194)
回答No.4

よく考えたら、関数オーバーライトしちゃえば、 無効に出来ますよね。 <script type="text/javascript"> function alert(){} </script> これ仕込めば、alert()無効に出来ます。

ayu_mi_nic
質問者

お礼

回答いただきありがとうございます。 JavaScriptを使わない方法でも確か、更新日時を知る方法があった気がします。 そのため、ちょっと難しいかと。。。

  • akanekor
  • ベストアンサー率52% (102/194)
回答No.3

そんな手あったんですね、勉強になりました。 こちら、サーバ環境無いので、試していませんが、 トップページを 通常のhtmlで書いて、内部で、<frame>でcgiのhtml画面を呼び出す 方法では、ダメでしょうか。 <html> <head> </head> <frameset> <frame src="frame1.htm" name="frame1"> <noframes></noframes> </frameset> </html> で、「javascript:alert(document.lastModified)」こんな事するユーザなら、 ソースくらい確実に見ると思われるので、 cgiで一度作成されたhtmlをダミーとして内部処理で書いとけば、 (</frameset> と </html>間に書かれた記述は無視されるのでここにダミーを書く) (<frame>は目立たないようにして、、) 無理ですかね、。 これでも、フレーム無しで叩かれたらネタばれちゃいますけど、。

  • akanekor
  • ベストアンサー率52% (102/194)
回答No.2

すみません、こちらの勉強不足かもしれませんが、 そんな処理不要だと思うんですけど、違いますか?(--; 「javascript:alert(document.lastModified)を入力する」 って仕組むのは、悪意ある第三者でいいのですよね? その人ってどうやってこの記述仕込むんでしょうか? ローカルに一度HTMLコピーしてからなら、 動作させるから、javascript:alert(document.lastModified)では、 コピーして変更した日付になるから意味無いし、。 クロスサイト スクリプティングで動かされるんなら、それ以前の問題 に思えるし、、(==; opener等なら、同サーバ間じゃないと動かないと思うのですが?? (違ったっけ?)

ayu_mi_nic
質問者

お礼

回答いただきありがとうございます。 javascript:alert(document.lastModified)を、CGIで動いていそうなページを開いてIEのアドレスで入力すると、あたかも、今しがた、ホームページを更新したかのように出力されます。 つまり、2,3ど実行するうちに、そのページが、CGIであるか、単なるHTMLページであるかが分かるというわけです。 もしかすると、気にしすぎかもしれませんが、依然、DOS攻撃とまではいかなくても、異常なアクセスがあったためCGIと気づかれない工夫をしたいと思っています。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

headerでLast-Modified:を出力すれば可能かも しれません。 Cache-Control:やPragma:と併用しないと キャッシュが有効で、クライアント側で表示が 変わらない場合も考えられます。

関連するQ&A

専門家に質問してみよう