• ベストアンサー

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

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

  • HTML
  • 回答数5
  • ありがとう数3

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

  • ベストアンサー
  • 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

  • CGIページの最終更新日時

    htmlで構成されたページの更新日時がわかる方法に「javascript:alert(document.lastModified)とアドレス欄に入力する」というものがありますよね。 あんな感じのCGI版はないものでしょうか? 思いつく限りのワードで検索してみたのですが更新日を自動で出してくれるCGIというのばかり引っ掛かってしまい、まったく見つかりませんでした。 お願いいたします。

    • 締切済み
    • CGI
  • ホームページの更新日を検索する方法を教えてください

    あるホームページの過去2年間の更新日時を調べたいのですが、どのような方法があるでしょうか。 javascript:alert(document.lastModified)で、最終更新日はわかったのですが、それ以前を知りたいのです。 よろしくお願いします。

  • ホームページの更新日時を操作したい

    ホームページの更新日時を操作したい javascript:alert(document.lastModified) などでホームページの更新日時を確認することが出来ますが、これって通常、サーバーにファイルをアップロードした時点の日付時刻になりますよね。これを、ローカルでファイルを更新、上書きした日付時刻(ファイルのプロパティで表示されるタイムスタンプ)にしたいのですが、FTPソフトでそのような設定は可能でしょうか?たとえば2010年10月25日に上書き保存したhtmlファイルを、サーバーにアップするのが2010年10月31日になってしまっても、ブラウザなどで閲覧者が確認できる更新日時はあくまで2010年10月25日としたい、ということです。 今使っているFTPソフトはWinSCPというものですが、他のソフトのご説明でも構いません。 よろしくおねがいします。

  • 更新日時表示lastModifiedについて

    現在http上ではjavascriptのlastModifiedが機能していて更新日時を表示できるのですが、https上だとちゃんとした更新日時を表示してくれません。NNだと1970,01,01。IEとFirefoxだと今日の日付を表示してしまいます。 SSLだとjavascriptのlastModifiedは機能しないのでしょうか?何か違うものを使えばSSLでもちゃんと更新日時を表示させることはできるのでしょうか? どなたか詳しくわかる方がいらっしゃいましたら、どうかご教授ください。よろしくお願いします。

  • webページ作成&更新日時の調べ方に関して

    表題の件です。 【環境】 ・OS: os x yosemite 10.10.3 ・ブラウザ: google chrom version 42.0.2311.135 色々と検索をしてみたのですが、どのサイトにも下記ワードが紹介されています。 javascript:alert(document.lastModified); が、上記ワードを検索窓に入れても、今の日時が返ってくるだけで、 実際にそのページが作り手によっていつ作成されたか、更新されたかが分かりません。 他の手段で作成&更新日時をともに調べることはできませんでしょうか。 宜しくお願い致します。

  • ページの更新日時を表示するスクリプト

    java超初心者です。 ページの更新日時を表示するスクリプトで、 <script type="text/javascript"> <!-- // 表示開始 document.write(document.lastModified); // 表示終了 // --> </script> があります。 これを、保存して、再度開くと更新日時が、二つ羅列されます。 また保存して、再度開くとまた増えて三つ羅列されます。 最新のものだけ表示したいのです。 色々調べてdocumentの内容をクリアするdocument.clearを足しました。 // 表示開始 document.clear document.write(document.lastModified); // 表示終了 ですが、上手くいきませんでした。 また調べてdocument.clearは現在は使用できない?とわかり docoment.openでも内容はクリアできるとわかり // 表示開始 document.open document.write(document.lastModified); document.close // 表示終了 としましたが、これも上手くいきません。 最新の更新日時しか表示されない方法をご教授いただけたらと思います。

  • applescriptでwebの更新日時取得

    javaだと document.lastModified で更新日時を取得できるようなのですが、applescriptにはこれに対応する構文はあるのでしょうか。

    • 締切済み
    • Mac
  • HPビルダーで『最終更新日時』を日にちだけにするには。

    こんにちは。 HPビルダー6.5にてHPを作っています。 上記タイトルどおりの質問なのですが、最終更新日時を日にちだけ出したいのです。 ビルダーに頼ってしまうと、 document.write('Last updated: ', document.lastModified); のようになっていて、この状態だと最終更新日が日にちと時間で構成されます。 これを日にちだけで表示させたいのですが、可能ですか?もし、可能であれば方法をおしえてください。 よろしくおねがいします。

  • HPの最終更新日をお気に入りを使用して表示したいのですが・・

    ホームページの最終更新日を表示するには javascript:alert(document.lastModified)とアドレス欄に入力しエンターキーを押せばよい事までわかりました。 これを簡単に実行するために「お気に入り」を使う方法があるはずなのですが、そのやり方がわかりません。 確かホームページを表示して何らかの方法で「お気に入り」にjavascript:alert(document.lastModified)を登録してホームページを表示している時に簡単に更新日を表示する方法だったと思います。教えて頂ければ幸いです。。

  • ファイル更新日の表示について

    こんにちは。プログラミング初心者です。 JavaScriptで下記のような記述で更新日を取得できますが、 <SCRIPT language="JavaScript"> document.write("最終更新日 : "+document.lastModified ); </SCRIPT> これを書いたファイルの更新日ではなく、他のフォルダに入っている、 テキストファイル等のの更新日を取得する事は可能でしょうか? 例えば・・・ フォルダA:top.html フォルダB:test.txt があり、top.htmlにtest.txtの更新日を取得し表示させたいです。 JavaScriptで無理でしたら、何が可能でしょうか?一応perlなら、 なんとなく分かります(サンプルCGIを動作する程度ですが)。 以上です。ご存知の方いらっしゃいましたら、ご教授下さい。

専門家に質問してみよう