Development
validate-phpのPHPスクリプト版
入力バリデーションCモジュール、Validate PHPモジュールのスクリプト版を紹介します。既存のバリデーション用ライブラリとは一味違います。 (さらに…)
「脆弱性を局所的に潰す」はアンチプラクティス
本物の「セキュアコーディング」(セキュアプログラミング)を知ればもう議論など必要ない、と思っています。本物の「セキュアコーディング」を「知ろうとしない」と幾らでもアンチプラクティスを作ってしまいます。 議論は終り、と思っていたのですがそうも行かないようなので紹介します。セキュアコーディングの概念を全く知ろうとしないで、セキュリティを作るのは「ただの無駄」です…
エンジニアなら理解る文字エンコーディングバリデーションの必要性
入力バリデーションで文字列の妥当性を検証(保証)しないと、不正文字問題の解決はできません。 よく「文字エンコーディングバリデーションは入力バリデーションしなければならない」と紹介はするのですが、その理由を詳しく解説していませんでした。これは文字エンコーディング攻撃の仕組みを理解してれば分かる事なのでしていませんでした。 しかし、文字エンコーディング攻撃の仕組…
IPAは基礎的誤りを明示し、正しい原則を開発者に啓蒙すべき
セキュアコーディングの第1原則は「入力をバリデーションする」です。セキュアコーディングの第1原則はソフトウェアセキュリティの一丁目一番地と言えるセキュリティ対策です。 入力バリデーションを第一のセキュリティ対策としているガイドライン: CERT Top 10 Secure Coding Practices OWASP Secure Coding ‐ Quic…
ベストプラクティスもどきのアンチプラクティス TOP 10
ここ十数年で見聞きした、脆弱なアプリを作ってきたベストプラクティスもどきのアンチプラクティス、をリストアップしてみます。 限定された条件ではベストプラクティスと言える物でも、一般化するとアンチプラクティスになる物は多いです。 コード検査をしていると良く分るのですが、アンチプラクティスは強力な破壊力を持っています。ここに書いているアンチプラクティスを無くすだけ…
セキュリティの原理、原則、ベストプラクティス
「セキュリティの」と付けていますが、どの分野でも共通することだと思います。 何事でも論理的に何かのガイドライン/ルールを作る場合、まず変えることのできない 原理 - 事物・事象が依拠する根本法則 を見つけ、その原理から導き出される 原則 - 多くの場合に共通に適用される基本的なきまり・法則 を作り、さらに特定の条件下の具体的な事例として ベストプラクティス …