2008年09月25日

セキュアWebプログラミングTips集

会社の経費で1冊の本を買ってみました。






です。

読後の感想というか、意見というか、思ったことを書いてみました。
興味があるかたは続きを読んでください。。。


※最初に。記載内容に不適切な部分などがあったら、コメント欄に記載して
私宛にお知らせください。




■書籍の構成について

セキュアWebプログラミングTips集ってことで、Webプログラミング時に
注意すべき点が対策ごとにカテゴリわけされて記載されています。
読者は必要なとこだけ読めば良いわけですが、最後の2章、


8章 その他のセキュア・プログラミングTIPS
9章 その他のWebアプリケーション開発時の注意事項


以外の部分はTIPS集(コツ、小技集)というよりも読み物です。
全文を読まないと理解できません。

正しく理解して正しく対応しなければセキュリティ対策の意味がない
ということが著者の主張ですので、説明が長くなることは仕方ないことです。
でも、タイトルをそのまま受け取ると「小技集」として出版されている他の
書籍のように簡単に対策だけを得られるように誤解されてしまいます。
タイトルのつけ方が適切とはいい辛いですね。


読み物を想定して書かれたためか、読解力を求められる箇所があります。

・結論が先であったり、最後であったり、章毎にバラバラ
・本文、図、注釈or本文、注釈、図と順番も章毎にバラバラ
・「否定の否定」で主張が書かれてる箇所が何箇所かある
・本文自体が読みづらい

4つ目なんて文章を書くことが苦手な私が偉そうにいうことでないですが、
そう感じたところを一箇所引用してみます。
P221からの引用です。


 IIS+ASP と ADO を使った例で説明してみたい。
 図 6.8-11 がそのソースコードである。
 IIS+ASP のソースコードはそれほど難しくないと思う。
 図 6.8-11 をざっと見渡してみて欲しい。
 SQL 文のテンプレートは、図 6.8-11 の6行目である。
 このSQL文のテンプレートを ADO Command オブジェクトに割り当てているの
が12行目である。
 6行目のSQL 文のテンプレート中にある「?」がプレース・ホルダと呼ばれるもので、
ここに ADO Parameter オブジェクトが埋め込まれる。




字下げもそのままにしてみたのですが、見てのとおり一文が短いので
本文が箇条書きのように見えます。
2〜4行目は1文でまとめるとスッキリすると思うのですが、どうでしょう?


あと、本文に対する注記は※1,2,3・・という番号が採番されて段落末にまとめて
記載されてるんですが、P327では※1,2,4,3の順番に並んでました。
まあ、このくらいのことに目くじら立てても仕方ないですが。





■挿入されている図について


事例としてコマンドを実行した結果の図、クエリ文字列に想定外の文字が
入力された実行例、ソースコードの一部が記載されているので本文の理解の
手助けになります。

でも、P139のソースコード(htmlのコード)だけ、なぜか本を横にして
見るように印刷されてます。
その他のソースコード同様に本を横にしなくても読めるようにしても
よさそうですが、意図的に・・・なんでしょうね。
これは私が違和感を感じただけで、まあ、些細なことです。


問題は、図によって不鮮明でどんなコマンドが実行されたのか、どんな
結果が返ってきたのかわからないものがある点です。

参考までにデジカメで撮影して切り取ってみました。
見えづらいのは私の撮影のせいかもしれないので、ご了承ください。

まず、P236の図。クエリにNULLを挿入したらしいんですが、読めません。

webtips01.jpg

P37の図。
かろうじて読めるレベルです。

webtips02.jpg


本文が不鮮明な部分はまったくなく乱丁でも無いように思えましたので、
生まれて初めて出版社に直接電話して聞いてみました。
(ほんとドキドキしながら)

電話してみたところ、SRC社の担当者とお話することができたのですが、
話をまとめると

「著者から提示された図を掲載している」
「著者といろいろとやり取りをしたが、著者からこれでOKが出された」
「著者がOKを出した以上どうしようもない」

とのことでした。
図で指し示したいことは本文や図のコメントとして記載されているため、
図がわからなければ理解できない、というわけではありません。
従って、図が判り難くても本質的な問題はありません。
でも、それなら読めない図は不要なのでは・・・???

著者と出版社の力関係がどうなのかわかりませんが、読めない図を
掲載して品質面で評価を落とすことはどちらにとっても好ましくない
ことですので、世に出してしまう前に対応してもらいたかったです。




■そして最大(?)の問題点

さて、最後に一番驚いたことですが挿入されている図のソースコードの多くに
「すべてのソースコードは、巻末に記載。」と書いてあるのですが

巻末にソースコードがない

です。
出版社へは上記の図の件で一度電話したからもう一度クレームの電話を
かけるつもりはないです。難癖つけるクレーマーと思われたくないし。
しかし、これって。。。





■その他、ささいなツッコミ

・いろんな言語、DBMSでの対応方法が紹介されてるけど、これも章毎に
 まちまち。バージョンが明記されているものがほとんどだけど、
 明記されてないものもあり。Javaにふれられてる箇所は少ないです。
 そして、イマドキ、ASPのサイトよりPHPのサイトのほうが多いと思うので、
 ASPのことよりもPHPにふれたほうがよかったのでは?

・P300の注釈でUNIXの場合ファイル名として/とNULLが使えないと
 書いてるけど、Windowsと比較するなら、空白も使えないのでは?

・P356でクレジットカードの下4桁はチェックサム、と言い切ってるけど、
 13桁目を連番として利用してる会社さんもあります。。。





■まとめ

内容自体はそれなりに勉強になりましたので、がんばって最後まで
読みましたが、内容以外の部分、書籍としての体裁の部分でちょっと
問題が多い書籍でした。

正直、読み続ける気を失って読むのをやめようと何度も思いました。
なので、一度手にした本は根気強く最後まで読み続けるタイプの方のみに
お勧めします。。。

posted by しげ at 01:09| Comment(0) | TrackBack(0) | たわごと | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/107046006

この記事へのトラックバック