SSブログ

ログの保存について考えてみる [プログラミング]

4月から個人情報保護法の施行で、忙しそうにしている人たちがいる。
法律の解釈とか、省庁のガイドラインとかいろいろやらなくちゃいけないことがあるらしい。

で、そのなかに「もし、ことが起きたときに、何が起きたかわかるように、普段から
ログをきちんと取ってきちんと保管しなさい」(超訳)というのがあるらしい。
私は、何か特別なことをするのではなくて、 Webアプリケーションであれば Webサーバーの
アクセスログを取ったり、RDBMSのを使っていれば、その監査ログを取っておきなさいよ・・・
という程度の、既存の運用の延長として考えていた。

しかし、それとはまったっく異なる解釈をしている人もいて、そういう一派は
誰がいつログインして何をしたか(どういう条件で検索したか等)を簡単に追跡できるような
ロギングの仕組みをアプリケーションに組み込んでおきなさい・・・と解釈している。
いくらなんでも、それはご無体な。それじゃあ工数が2倍を超えそう。しかも、その方法だと
アプリケーション作成者の想定を超えたアクセス・・・たとえばクラッキングには対応できない
じゃないですか。

・・・そんな一派は、ごく例外だと思っていたのだが、最近になってそう考える人が
意外に多いことを知った。そう考えている人たちでも、結局は、現実的には
基盤のアクセスログに頼って、アプリケーションにロギングの機能をつけることは
無いようだが。

そういわれちゃうと、確かにアクセスログだけで本当に追跡できるかというと、
それはなかなか難しいわけで、少しでも追跡しやすいログの取り方を考えてみた。

Zope を使う場合、User Folder の機能で Basic認証すると、Z2.log にログインした
ユーザーIDが記録される。これは、なかなか良い。
あと、Database Adapter を改造したら、誰(AUTHENTICATED_USER)がいつ
どんな query を発行したかロギングできるかなぁ。

ZSQLMethod を全部書き換えて、

LOGGED_PROC('select * from test', &dtml-AUTHENTICATED_USER;)


としたら、 引数1、2を保存して引数1の query の実行結果を返すような
ストアードプロシージャ LOGGED_PROC ってかけるのかなぁ。

いずれにせよ、ログインしたユーザーと
・アクセスした URL
・発行した SQL文
がわかれば、かなり追跡が楽かな。追跡しやすさという意味では、POSTよりも
GET の方が追跡しやすいけど
「アクセスログで追跡をし易いように、ここは GET にしましょう」とはならないよなぁ・・・
#パケットを覗けば、POST も GETも同じなんだけど、セキュリティの名のもとに
#極力 POSTで・・・という目にあったことは私もある。


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0