アカウント名:
パスワード:
> 重複はできるだけ廃したいところだが、どこにどのような穴が存在するかは分からないわけで
むしろ、どこに穴が生まれるか判らないからこそ、重複を避けたいと思うんだけど…。この重複と表現している部分が元記事を読んでも、正直良く判りません。
重複を避けるの意味を、PHPでよく使う処理をfunctionにまとめることだと思ったんですが、それが何故セキュリティホールにつながっていくのか、そこもイマイチ判然としません。
もし何か私が誤解しているようなら、ぜひ指摘していただけないでしょうか。
「重複を廃した効率的なコードを目指したために多重のセキュリティ対策を行わず、その結果対策漏れが発生する」というのは用意されたチェック関数だけだと危険、ということではないでしょうか?
関数に渡す前にチェック、更に関数の中でチェックと多重にチェックしていてもどちらも同じチェック関数だったら、チェック関数にバグがあった場合に一気に穴になりますよね?あくまでもそれぞれの箇所で・入力は信用しない・出力は(自分自身の手で)安全にしておくというのが推奨されるんじゃないかと。
数値しか入らないフィールドは一度数値型を通すとかそういう対策含めてですね。文字列の場合はなかなか難しいところがあるとは思いますが。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall
完ぺき主義ではないけれど (スコア:0)
> 重複はできるだけ廃したいところだが、どこにどのような穴が存在するかは分からないわけで
むしろ、どこに穴が生まれるか判らないからこそ、重複を避けたいと思うんだけど…。
この重複と表現している部分が元記事を読んでも、正直良く判りません。
重複を避けるの意味を、PHPでよく使う処理をfunctionにまとめることだと思ったんですが、
それが何故セキュリティホールにつながっていくのか、そこもイマイチ判然としません。
もし何か私が誤解しているようなら、ぜひ指摘していただけないでしょうか。
Re:完ぺき主義ではないけれど (スコア:0)
「重複を廃した効率的なコードを目指したために多重のセキュリティ対策を行わず、その結果対策漏れが発生する」
というのは用意されたチェック関数だけだと危険、ということではないでしょうか?
関数に渡す前にチェック、更に関数の中でチェックと多重にチェックしていても
どちらも同じチェック関数だったら、チェック関数にバグがあった場合に一気に穴になりますよね?
あくまでもそれぞれの箇所で
・入力は信用しない
・出力は(自分自身の手で)安全にしておく
というのが推奨されるんじゃないかと。
数値しか入らないフィールドは一度数値型を通すとかそういう対策含めてですね。
文字列の場合はなかなか難しいところがあるとは思いますが。