https://github.com/sina2/moesec/
Perlのセキュリティとか思う所とか色々あるのだが,まぁそれはそれとして。
主な変更点(下のほうが古いです)
・コンフィグファイルをマークダウン形式に変更・簡易投票機能の削除
・ランクログ変換機能の削除
・HTML生成機能の削除
・過去ログ機能( past_log.cgi )の削除
・提供機能( sum_up.cgi )の削除
・アイコンの自動削除機能( ico_del.cgi )の削除
・IPAに書いている Perlのセキュリティ対策をしています。
・・コマンドインジェクション対策に open() をsysopen()に変更しました。https://www.ipa.go.jp/security/awareness/vendor/programmingv1/a04_01.html
このサイトを元に1対1対応で置換。
→ use Fcntl;
open( $fh , $filename ) → sysopen( $fh , $filename , O_RDONLY )
open( $fh , > $filename ) → sysopen( $fh , $filename , O_WRONLY | O_TRUNC | O_CREAT )
open( $fh , +< $filename ) → sysopen( $fh , $filename , O_RDWR )
・・mail関係にopen()使っていたので,機能ごと全削除しましたヽ(`▽´)/
Encode.pmも要らなくなったので削った。
・・gzip関係にopen()使っていたので,機能ごと全削除しましたヽ(`▽´)/
自前のHTTPのgzip圧縮転送に使われてました。
・・system exec backticks fileglob glob eval 関数は使ってなさそう。
https://www.ipa.go.jp/security/awareness/vendor/programmingv1/a04_02.html
ながめたかんじ。なにか出たら対応します。
・・Taintモードに対応しました
https://www.ipa.go.jp/security/awareness/vendor/programmingv1/a04_03.html
「記事削除」とかアイコン削除」でのファイル削除( unlink )がTaintモードで怒られたのでファイルを消さないようにしました。なので,記事消しても画像ファイルとBGMファイルが残ります。
----ここから下は前記事と同じです。
・git (git fetch & git merge origin/master ) でアップデートできるようにしました。
ログファイルや設定ファイルの類はバージョン管理から外しました。
#他のファイルは最初の一回目のアクセス時に新規で開くように修正したつもり・・・・元の変更はコメントアウトで残しています。
・UTF-8に対応しました。
iconv 使って スクリプト(.pl,.cgi)を全部UTF-8にしました。
スクリプトファイル内でHTTPヘッダをつくってるところを置換
HTTP-EQUIV=”Content-type” CONTENT=”text/html; charset=EUC-JP”
→ HTTP-EQUIV=”Content-type” CONTENT=”text/html; charset=utf-8″
・cgi-lib.plでもサイズの大きなファイルをアップロードできるように変更しました。
cgi-lib.pl では131072(2^17)bytesが最大ですが,それ以上のファイルサイズでもアップロードできるように変更してます。とりあえず手元の環境では動いている模様。
・再配布用に cgi-lib.pl に戻しました。
インストール(詳細は前記事参照)
$ cd public_html$ git clone https://github.com/sina2/moesec.git
$ chmod 755 moesec
$ cd moesec
$ chmod 755 *.cgi
(必要があれば.htaccess を作ってください。)
アップデート(詳細は前記事参照)
$ cd public_html/moe$ git fetch
$ git merge origin/master
$ chmod 755 *.cgi
最後におまじない
当サイトの掲載内容を利用することにより、万一利用者に損害や不利益が生じたとしても、当サイトは一切責任を負わないこととします。
0 件のコメント:
コメントを投稿