Sarms (2)

2012/11/15 文字化けについて追記


石川県の sarms という OSS - まにっき

前にこんなの書いてたんだけど、地元新聞に大きく取り上げられてたので、もう一度調べてみた。

Google してみるとこんなページがあった。

http://www.sarms.jp/

ちょっと中を追っかけてみます。

はじめに

今の最新版であればとりあえず動かしてみることは可能ですが、普段 Unix を触っていない人には難易度が高めです。
配布物にある設定ファイルは実物のものとは思えないので *1 あまり信用しない方がいいと思います。
付け加えると suexec とか必要あるとも思えないものがいっぱい load してあって危ない臭いがします。

コマンドラインに慣れてない場合、この機会に覚えてみたいという奇特な方以外は挑戦しない方が無難です。

前はなかった CREATE TABLE のスクリプトが追加されてる

http://forums.sarms.jp/topic/6

どうやら、同じファイル名のアーカイブの内容をそのまま新しいファイルに差し替えしてるみたいです。
リリースノート書いたりファイル名変えたりしないと変更されたってわからないでしょう。*2

Release It! 本番用ソフトウェア製品の設計とデプロイのために

Release It! 本番用ソフトウェア製品の設計とデプロイのために

これは失笑もの

http://forums.sarms.jp/topic/5

>1.[管理メニュー][インポート][組織情報]でインポート出来ません
…
インポート中にブラウザを閉じてしまうとレコードの削除が出来なくなってしまうため、

えーっと。ブラウザと対話しながらトランザクションこなしてるんでしょうか?
で、対話が途切れたらロックが残ってしまって操作できなくなる?
マスタ系のインポートなら許容範囲かもしれませんが。

2.[管理メニュー][保守][組織]の組織一覧に追加した組織情報が表示されません
…

ユーザにやらせるような対応じゃない。これをみて何をすればよいか分かるユーザがいるのだろうか。

robots.txt

http://www.sarms.jp/robots.txt

User-agent: *
Disallow: /

設定して動かしてみる

というわけで CREATE TABLE スクリプトが追加されたので動かしてみます。

Apache + PHP の設定が必要です。

ドキュメントは皆無なので端末などに出力されるエラーメッセージをよく読んだり print デバッグして適宜設定していきましょう。
エラーしたときもログファイルはありません。障害発生時はどうするつもりなのでしょうね。

さらにソースのあちこちにファイル path がハードコーディングされているので全て自分の環境に合わせて変更しましょう。30 箇所ぐらいあります。

postgres Database を設定する、大体のガイドラインは以下の通り。
過不足や変数、path は適当に補完してください。
PORT は 65432 で Listen してます。

initdb -U postgres --pwfile pass.txt -E utf-8 -D ${datadir}
postgres -D ${datadir}
createdb -h localhost -p 65432 -E utf-8 -U postgres  sarms
createuser -h localhost -p 65432 -U postgres -S -D -R shisanadmin
PAGER=cat psql -h localhost -p 65432 -f dump.sql -d sarms -U postgres
PAGER=cat psql -h localhost -p 65432 -f dump_data.sql -d sarms -U postgres

そのほか chmod したりしないといけないかもしれません。

UI

http://d.hatena.ne.jp/mhayashi1120/files/sarms1.jpg?d=.jpg

思ったよりきれい。もっと古めかしい感じかと思ってた。
職員に見える、よく指摘される部分は丁寧に作ってますね。
入力項目や表示項目がやたらと多くて異常に横に長いのを除けば。
データ件数が多くなったときにはどれぐらい重くなるのだろう。
姓名の入力をスペースで分けるのとかはちょっと痛い。

Security

まだよくわかってないけど、単純な手法ではSQL インジェクション使ってログインすることはできないらしい。
ログイン画面以外の箇所は知らないけど、大した問題じゃなさそう。

2012/10/08 追記 ここには書かないけど、誰でもログインできるマスタパスワードありました。クラックするなんて考えたことないんで。。

相変わらず生パスワード使っているのでこちらは論外。

DB

台帳に IP アドレスを記録してるみたいけど、もしかして固定 IP で運用しているのだろうか。
mac address も持ってるように見えるからなんらかの複雑な紐付けをしてるのかもしれない。

文字化け

文字化け対策は環境依存なので、ここに書いたのを鵜呑みにしないほうがいいのですが、最近の環境であれば

/var/www/html/.htaccess ファイル

php_value mbstring.http_output UTF-8

コメントアウト

/var/www/html/hcms/common.php ファイル

if(@$mobile == true){
	/** 携帯 */
	mb_http_output('SJIS');
}else{
	/** PC */
	mb_http_output(_CHARACTER_SET);
}

コメントアウト

することで PC の場合は大丈夫だと思います。携帯の場合はわかりません。

最後に

実はこれが一番言いたかったりする。

入札の情報も出てこないし、どうやって発注されたのでしょうね。
IT 関係の入札って検索してもあんまり出てこないし、どういう仕組みで発注されてるのか知りたい。
システム開発の発注先は N 社みたいで、その下請けは福井の OSS を得意としてる業者みたい。
forum を運用している業者は京都の業者らしい。
どーせコネなんだろー。

*1:php5_module を LoadModule していなかったりする

*2:手元では Git のリポジトリに入れてるので、どれが変更されたかは分かるのですけどね。