CGI Perl 2017年02月08日 13:13 編集
perlのバージョンが新しくなったらCGIが動かなくなったという書き込みがサポート掲示板にあった。
Perl5.24ということだが、ローカルでCGIのテストに使っているXamppは最新版でもPerlのバージョンはは5.16なので、5.24での動作が確認できない。
Xamppの環境でこのActivePerlが使えるのかわからないが、取りあえずインストールしてみる。
XamppでPerlがインストールされているC:\xampp\perlに直接インストールしたいところだが、ダウンロードしたActivePerlのインストーラーはインストール先を変更できないようだ(それとも見落としたか?)
また、64bit版のインストーラーを使ったので、C:\Perl64というフォルダにインストールされてしまう。
取りあえずこれをXamppでインストールされたC:\xampp\perlフォルダにコピーすることにする。C:\xampp\perlは別名に変更してバックアップしておき、C:\Perl64の中身をすべてC:\xampp\perlにコピーしてみた。
これだけでうまくいくはずないよなと思ってCGIを実行してみると、あっさりと動いてしまって拍子抜けした。
Perl5.24ということだが、ローカルでCGIのテストに使っているXamppは最新版でもPerlのバージョンはは5.16なので、5.24での動作が確認できない。
Perlを5.24にアップデート
単体ではWindows用ActivePerlの5.24が公開されている。Xamppの環境でこのActivePerlが使えるのかわからないが、取りあえずインストールしてみる。
XamppでPerlがインストールされているC:\xampp\perlに直接インストールしたいところだが、ダウンロードしたActivePerlのインストーラーはインストール先を変更できないようだ(それとも見落としたか?)
また、64bit版のインストーラーを使ったので、C:\Perl64というフォルダにインストールされてしまう。
取りあえずこれをXamppでインストールされたC:\xampp\perlフォルダにコピーすることにする。C:\xampp\perlは別名に変更してバックアップしておき、C:\Perl64の中身をすべてC:\xampp\perlにコピーしてみた。
これだけでうまくいくはずないよなと思ってCGIを実行してみると、あっさりと動いてしまって拍子抜けした。
counter:12,007
PHP Perl 2016年12月21日 14:36 編集
perlで書いていたCGIを、PHPしか動かないサーバーで使う必要に迫られ、PHPに書き換えた。その際の注意すべき点をまとめた。
また、perlでは、変数のタイプが違うと、同じ名前をつけることができる。たとえば、$data、@data、%dataを同時に別の変数として扱える。PHPではこれはできないので、perlからPHPへの移行の際には、まずこれに注意が必要だ。
変数
perlの場合は、変数のタイプによって頭につける文字が違う。スカラー変数は$、配列は@、ハッシュは%というように。一方PHPの場合は、すべて$をつけることになるので、一見しただけでは変数に何が保存されているのかわかりにくいという問題がある。また、perlでは、変数のタイプが違うと、同じ名前をつけることができる。たとえば、$data、@data、%dataを同時に別の変数として扱える。PHPではこれはできないので、perlからPHPへの移行の際には、まずこれに注意が必要だ。
counter:6,617
CGI 2016年08月26日 12:24 編集
お知らせ
プライベートディレクトリの利用者がトレンドマイクロのセキュリティソフトを使用している場合、プライベートディレクトリへのログイン情報が外部に漏れる恐れがあります。対策を施したver.1.0に更新をお願いします。受験戦争の過熱を抑えるためか、最近ではテストの偏差値を出さない学校が増えたようです。
しかし、試験の点数だけでは、成績が上がったのか下がったのか、イマイチわかりにくくて困る場合もあります。
こういうときはやはり偏差値がわかると便利です。
counter:6,172
最近の更新
公開しているスクリプト
PHP
2022/10/13 23:44:14
2022/10/06 02:05:17
2022/10/03 20:20:09
2022/03/22 20:03:05
2022/03/22 19:42:39
2021/08/18 19:52:11
CGI
2023/02/26 14:54:53
2018/03/01 10:31:55
2016/08/26 12:24:17
2016/08/16 15:04:54
counter:5,696
迷惑投稿対策 2016年08月22日 20:11 編集
トレンドマイクロのセキュリティソフトをインストールしていると、アクセスしたWEBサイトのURLがすべてトレンドマイクロに送られてしまうということがわかりました。
パスワードでアクセス制限されたページも、URLにパスワードが含まれているとそれも送られてしまうため、セキュリティ上大きな問題になります。
これは、悪意のあるプログラムが仕掛けられているWebページへのアクセスをブロックするというWebレピュテーションという機能を有効にすると、こうなるようです。
Webレピュテーションの仕組みは、
パスワードでアクセス制限されたページも、URLにパスワードが含まれているとそれも送られてしまうため、セキュリティ上大きな問題になります。
これは、悪意のあるプログラムが仕掛けられているWebページへのアクセスをブロックするというWebレピュテーションという機能を有効にすると、こうなるようです。
Webレピュテーションの仕組みは、
- WebレピュテーションをいれたユーザーがWebを閲覧すると、そのURLがすべてトレンドマイクロのサーバーに送られる。
- そのURLへトレンドマイクロのロボットがアクセスして安全かどうか調べる。
- URLが安全かどうかの情報がサーバーのデータベースに送られる。
- ユーザーがWebにアクセスしようとすると、データベースに問い合わせて、危険と判断されたらブロックする。
counter:5,261
名前は "Shade検索"Wiki となっていますが、Shade関係の記事はほとんどなくて、自作のCGIなどをひっそりと紹介するサイトになってます。
CGIについてのお問い合わせはCGIサポート掲示板へ
最近更新した記事
公開しているCGIなど
2022/10/13 23:44:14
2022/10/06 02:05:17
2022/10/03 20:20:09
2022/03/22 20:03:05
2022/03/22 19:42:39
2021/08/18 19:52:11
2023/02/26 14:54:53
2018/03/01 10:31:55
2016/08/26 12:24:17
2016/08/16 15:04:54
counter:7,198
CGI 暗号 2016年08月22日 12:22 編集
パスワードを保存する必要のあるCGIでは、生のパスワードのまま保存するより、ハッシュ化したほうが安心ということでこれまですべてcrypt関数でハッシュ化した上で保存していました。
このcrypt関数は手軽に使えて便利なのですが、有効なパスワードの文字数が8文字までという制限があります。
たとえば、「password123」というパスワードをcryptでハッシュ化して保存すると、9文字以降は無視されるため、「password」でも、「password012」でも正しいパスワードと認識されてしまいます。
このcrypt関数は手軽に使えて便利なのですが、有効なパスワードの文字数が8文字までという制限があります。
たとえば、「password123」というパスワードをcryptでハッシュ化して保存すると、9文字以降は無視されるため、「password」でも、「password012」でも正しいパスワードと認識されてしまいます。
Digest::MD5モジュールを使う
これは、やはりマズイので、何とかできないか調べてみました。counter:6,891
CGI 2016年08月22日 12:21 編集
-
利用者はプログラムの著作権表示を削除する事は出来ません。必ず「見える」位置に表示してください。
また削除しなくても、極端に小さくしたり、配色の具合等により表示を見えにくくしてしまう行為も実質的な削除行為となります。
-
プログラムを改造して利用することは自由です。
プログラムを改造し再配布することについては、今のところ想定していません。
-
すべてのプログラムが、すべての環境で動作する事は保証していません。
-
当サイトのプログラムを利用した事によるいかなる損害も作者は一切の責任を負いません。
-
作者に著しく不利益があると判断した場合には一方的にプログラムの使用を中止していただくことがあります。
-
設置に関する質問はすべてCGIサポート掲示板でお受けします。直接メールによるサポートは行なっておりません。
-
この「利用規定」は予告なく改編・加筆を行うことがあります。
counter:6,126
CGI 2016年08月22日 12:21 編集
counter:6,509
PHP 暗号 2016年08月22日 12:20 編集
パスワードをハッシュ化する場合、perlでは、crypt関数を使うと有効な文字列が8文字までという制限が有るため、MD5モジュールを使ってハッシュ化していたが、PHPの場合は逆にcryptを使った方が強度は高いようだ。
ハッシュ化の目的は、サーバー上に保存したパスワードが万一漏洩しても、元のパスワードが知られないようにするためで、この場合復号する必要は無い。ハッシュ化されたパスワードと元のパスワードを照合して、ハッシュ化されたものが元のパスワードから生成されたものであることがわかりさえすればいい。
PHPでmd5()関数を使うと、ハッシュ値と呼ばれる32桁の16進数に変換される。
「abcd」とハッシュ化された文字列は1対1の対応で、「abcd」を何度md5でハッシュ化しても「e2fc714c4727ee9395f324cd2e7f331f」になる。
このハッシュ値から元の文字列を得る方法はない。つまり「e2fc714c4727ee9395f324cd2e7f331f」から元の「abcd」を得ることはできないということが、秘匿性を守る根拠になっている。
ところが、ハッシュ値のデータベースから元の値を得るモジュールなるものが存在するらしい。
ハッシュ化の目的は、サーバー上に保存したパスワードが万一漏洩しても、元のパスワードが知られないようにするためで、この場合復号する必要は無い。ハッシュ化されたパスワードと元のパスワードを照合して、ハッシュ化されたものが元のパスワードから生成されたものであることがわかりさえすればいい。
PHPでmd5()関数を使うと、ハッシュ値と呼ばれる32桁の16進数に変換される。
$str = 'abcd';実行結果
$md5 = md5($str);
echo $md5;
e2fc714c4727ee9395f324cd2e7f331fたとえば上記のように「abcd」という文字列をmd5でハッシュ化すると、「e2fc714c4727ee9395f324cd2e7f331f」という文字列が得られる。
「abcd」とハッシュ化された文字列は1対1の対応で、「abcd」を何度md5でハッシュ化しても「e2fc714c4727ee9395f324cd2e7f331f」になる。
このハッシュ値から元の文字列を得る方法はない。つまり「e2fc714c4727ee9395f324cd2e7f331f」から元の「abcd」を得ることはできないということが、秘匿性を守る根拠になっている。
ところが、ハッシュ値のデータベースから元の値を得るモジュールなるものが存在するらしい。
counter:6,372