みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2005-12-04 02:29:29

QNo.1818190

困ってます

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

>JavaScriptを使わない方法でも確か、更新日時を知る方法
ウェブサイト巡回ソフトによる、取得ですよね?
それって、HEAD リクエスト投げてきますから、
http://www.koizuka.jp/~doggie/wwwd-handbook.html
こんな感じで、Last-Modified出力する所で、偽の時刻生成して返してみては、

けどIEの挙動は、元がCGIだった場合、確認のリクエスト投げずに表示してるぽい、
(LAN抜いても、平気で時刻変えて返してくる、、(==; )
ので、No4の処理も入れといてくださいな。

投稿日時 - 2005-12-05 15:44:17

お礼

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

投稿日時 - 2005-12-27 23:34:16

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.4

よく考えたら、関数オーバーライトしちゃえば、
無効に出来ますよね。

<script type="text/javascript">
function alert(){}
</script>

これ仕込めば、alert()無効に出来ます。

投稿日時 - 2005-12-05 00:55:28

お礼

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

投稿日時 - 2005-12-05 08:55:02

ANo.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>は目立たないようにして、、)
無理ですかね、。


これでも、フレーム無しで叩かれたらネタばれちゃいますけど、。

投稿日時 - 2005-12-04 15:15:05

ANo.2

すみません、こちらの勉強不足かもしれませんが、
そんな処理不要だと思うんですけど、違いますか?(--;

「javascript:alert(document.lastModified)を入力する」
って仕組むのは、悪意ある第三者でいいのですよね?
その人ってどうやってこの記述仕込むんでしょうか?

ローカルに一度HTMLコピーしてからなら、
動作させるから、javascript:alert(document.lastModified)では、
コピーして変更した日付になるから意味無いし、。

クロスサイト スクリプティングで動かされるんなら、それ以前の問題
に思えるし、、(==;

opener等なら、同サーバ間じゃないと動かないと思うのですが??
(違ったっけ?)

投稿日時 - 2005-12-04 12:20:16

お礼

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

投稿日時 - 2005-12-04 12:32:31

ANo.1

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

投稿日時 - 2005-12-04 09:58:37

あなたにオススメの質問