石川県の sarms という OSS

2012/10/02 追記
検索してくる方が割といるので sarms の公開されてるプログラムについて、最初に明言しておきます。
配布されているものだけでは動きません。動かそうとしても時間の無駄です。

2012/10/06 追記
http://d.hatena.ne.jp/mhayashi1120/20121006/1349499303

概要

居住県の県庁でソフトウェア情報資産管理をしているらしく、その一部が OSS になっているらしい。

http://www.samac.or.jp/jirei001.html

県庁は不正なライセンスでソフトウェアを利用して数千万の賠償をしたらしく、それへの対策と思われる。

http://www.itmedia.co.jp/news/articles/0907/17/news008.html

OSS で公開しているし、IPA脆弱性窓口は見てみたけどめんどくさくなっちゃったし、ちょっとみたらすぐに分かるし、県庁の組織内部でしか使わないソフトだろうから攻撃される可能性も低そうだし、書いちゃおう。
なんらかのリアクションはあるだろうか。

どういうソフトなのか

ソフトウェアの権利保護団体からプッシュされてる感じ。

http://www.bsa.or.jp/psamportal/cs/ishikawa/p1.html

プロジェクト開始から稼動まで 3 年かかったのかぁ。
県庁内部の人件費も含めると数億は使ってるんじゃないかな?
年配の職員もいるし、ソフトを利用するためのトレーニング期間を考えるともっと大きな金額になりそう。
検索してみると、使いづらいってブログを書いてる方もいたので、自治体向けシステムにありがちな大変さなのだろう。

http://www.bsa.or.jp/psamportal/cs/ishikawa/p8.html

2011/07 に archive が作られて以来、1 年間まったく変更されてないことから、メンテナンスがほとんどされてないことが推察される。
長期間更新されていないソフトはユーザからのフィードバックをまったく反映していないことを示しているのだよね。

配布されてるプログラムと設定ファイルを読んでみる

で、ログイン画面のコードをちょっと見てみるといきなりわかりやすく

$user_setting = $dbobj->dbSelect("select * from \"user\" where user_id='".@$_REQUEST['login_user']."' and pass='".@$_REQUEST['login_psw']."'", "detail");

SQL インジェクションと raw パスワードの問題。
もちろんこれだけなわけがなくてあちこちに文字列連結が addslashes と共に散りばめられてるみたいで、生真面目に直すのであれば大変だろうな(笑)

あちこちに @ (atmark) が散りばめられてるけど、これ VB でいうところの On Error Resume Next ぐらいの意味だろうか。
エラーがあったときの戻り値は何になるのかまだ調べてない。PHP 歴二日なので。

総括

CREATE TABLE するスクリプトが配布物に入っていないので動かせないみたいなんだが、なんのために公開したんだろう。
Apache の設定もよく分かっていなさそうな気配で、設定を別のプロジェクトからコピペした感じがする。
OSS とか GPL とか言いたかっただけなんじゃないかな。
あるいは、石川県庁の情報課に「なんとしても OSS + GPL で公開するんだ!」とねじこまれたので適当にまとめただけとか。

公共事業なものはどんどん OSS にしていってもらえると面白いんだけど、一般人の感覚で莫大な金を使って作られたソフトの物量や権威に圧倒される時代になっちゃいそうな気もする。田舎だと「県(市)の依頼を受けて作成した」とかいうだけで平伏するような人がまだまだ多いのですよね。
OSS のこと詳しいプログラマがプロジェクトに入ってそこそこ発言権を得ないと、こういう変なプロダクト(?)がまかり通ってしまうのではないだろうか。

追記 (2012/06/27)

SQL 周りだけお手軽に軽く適当に直すんなら .htaccess

php_flag magic_quotes_gpc on

ってする手もあるみたいね。わざわざ off にしてあるから SQL と関係ないところでどういう影響あるかはわからないけど。

根本的にはバインド変数を使うように変えるしかないと思われる。

あと、php から shell の起動をするのも一応やめた方がいいと思う。

追記 (2012/09/19)

検索してくる方がいらっしゃるので、強調部分など、ところどころ追記。

追記 (2012/10/02)

結構検索してくる方がいて驚いたのでさらに追記。