あまり細かく規定されると困る [プログラミング]
「発注者のためのWebシステム/Webアプリケーション セキュリティ要件書」
http://bakera.jp/ebi/topic/3564
ばけらさんも「やればできる子」と書かれているように、書き手の方々はそれなりには分かっている方だと思うのですが・・・正しいかどうかは別にして、あまり細かく規定されるとコピペが蔓延して困ります。
例えば、パスワードの長さや複雑さは時と場合によると思うのですが、往々にして7文字以上(もしくは8文字以上)がひとり歩きします。XSS 対策のための HTML エスケープも、信用できないユーザーの入力をそのまま出力してはいけない、ということで、必ずエスケープしないといけないというのは守れない場合もある気がします。
同じように、コーディング規約もプロジェクト単位で規定されてたりしますが「これ COBOL の頃から使ってるだろう」とか「VB はそれでいいかもしれんけど」とかで、現実的でなかったり、時には守りたくても守れない場合もあったりします。
識別子の命名規則が、
・クラスだと C で始まるアルファベット大文字3文字プラス数値4桁
・メソッドだと M で始まるアルファベット大文字3文字プラス数値4桁
という Java のコーディング規約を見たことがあります。(コンストラクタが規約違反になっちゃう・・・)
まぁ、これは細かすぎるというより誤った規約ですが。
上の、セキュリティ要件書の例でいうと
・パスワードは必要に応じて複雑性を強制しよう
・XSS 対策のため、必要なところでは HTML エスケープしよう
では、守られないからという思いもわからんでもないので、どういう形で定めればよいか難しいけど。
http://bakera.jp/ebi/topic/3564
ばけらさんも「やればできる子」と書かれているように、書き手の方々はそれなりには分かっている方だと思うのですが・・・正しいかどうかは別にして、あまり細かく規定されるとコピペが蔓延して困ります。
例えば、パスワードの長さや複雑さは時と場合によると思うのですが、往々にして7文字以上(もしくは8文字以上)がひとり歩きします。XSS 対策のための HTML エスケープも、信用できないユーザーの入力をそのまま出力してはいけない、ということで、必ずエスケープしないといけないというのは守れない場合もある気がします。
同じように、コーディング規約もプロジェクト単位で規定されてたりしますが「これ COBOL の頃から使ってるだろう」とか「VB はそれでいいかもしれんけど」とかで、現実的でなかったり、時には守りたくても守れない場合もあったりします。
識別子の命名規則が、
・クラスだと C で始まるアルファベット大文字3文字プラス数値4桁
・メソッドだと M で始まるアルファベット大文字3文字プラス数値4桁
という Java のコーディング規約を見たことがあります。(コンストラクタが規約違反になっちゃう・・・)
まぁ、これは細かすぎるというより誤った規約ですが。
上の、セキュリティ要件書の例でいうと
・パスワードは必要に応じて複雑性を強制しよう
・XSS 対策のため、必要なところでは HTML エスケープしよう
では、守られないからという思いもわからんでもないので、どういう形で定めればよいか難しいけど。
コメント 0