キーワード  
CGI  2016年08月16日 15:04   編集
CGI/タイムスタンプ変更CGI

お知らせ

ユーザーがトレンドマイクロのセキュリティソフトを使用している場合、アクセス制限ページのログイン情報が外部に漏れる恐れがあります。対策を施したver.1.12に更新をお願いします。

需要がどれくらいあるかわかりませんが、ファイルの更新時間を変更するCGIを公開しました。
私の場合は、掲示板などのログファイルの更新時間を変更するのに使っています。
なぜ、ログファイルの更新時間を変更する必要があるかというと、スパム投稿対策のためです。ウチの検索サイトでは、掲示板などのログファイルの更新時間をチェックして、何日以内の更新だったら new! 表示したりしています。当然ながらスパム投稿の場合でもログファイルが更新されると new! 表示されます。
スパムを削除してもログファイルの更新時間は元には戻りません。(スパムを削除した時間にさらに更新されるだけです。)
そうすると、スパムを削除してログの中身は元の状態に戻っているのに new! 表示だけが残ってしまうことになります。
これはやはり具合が悪いので、こういう場合は更新時間変更CGIでログファイルの更新時間を、スパムが投稿される元の時間に戻すようにしています。

また、最近はWEB上ではなく、パソコン内のファイルの更新時間を変更したいというケースもあるので、ローカル環境でも使いやすいよう改修したものを公開することにしました。テキストボックスに入力したディレクトリに移動できるようになっています。日本語のフォルダやファイルにもアクセスできるようです。(すべて大丈夫かわかりませんが)

web上での使用も考えて、簡単なアクセス制限機能もつけています。このCGIはファイルの更新時間を変更することしかできませんが、使い方によっては見えてはいけないファイルも見えてしまうという危険があるからです。WEB上に設置する場合、極力わかりにくいパスワードを設定してください。
ver.1.12 2013/03/14
ログイン後の認証を一時ファイルによる認証に変更。
ver.1.1 2011/06/17
秒単位まで編集できるようにしました。
パスワードは「guest」です。サンプルなので、ディレクトリの移動に制限をかけています。

設置

ダウンロードしたファイルを解凍したら、time_stamp.cgi1行目の
#!/usr/local/bin/perl
をサーバーに合わせて変更してください。

パスワード制御するなら(24行目がmy $use_pass = 1;なら)
25行目の
my $pass = '';
にパスワードを入れてください。
修正は以上です。あとはサーバーにアップロードしてtime_stamp.cgiのパーミッションを適当に設定してください。

使い方

  • 更新時間を変更したいファイル名をクリックすると、変更フォームが現れます。「指定した時間に変更する」を選んで、日時を変更し、「タイムスタンプ修正実行」ボタンを押すと更新時間が変更されます。
    「現在に変更する」を選んだ場合は、現在の時間に更新されます。

  • ディレクトリ名をクリックするとそのディレクトリに移動します。ディレクトリ名クリックはそのディレクトリへの移動に割り当てているので、ディレクトリの更新時間変更はとりあえずできません。

  • ファイル名、ファイルのサイズ、最終更新時間でソートできます。たとえば、名前をクリックするとファイル名を昇順でソートします。もう一度名前をクリックすると降順でソートします。
    サイズ、最終更新時間のソートも同じように2度続けてソートすると表示順を逆にします。
  • フォルダとファイルは分けて表示しますが、フォルダを先に表示したり、ファイルを先に表示したりすることができます。
存在しない日付や時間への変更はできませんが、存在してもUNIX元年(1970年1月1日)より前や、2038年1月19日以降の日付には変更できません。
・・・と思っていたら、いつの間にか1970年以前や2038年以降への変更もできるようです。PHPと同様にサーバーのPerlも64bit化されているのかもしれません。
counter:2,176