X

PHP Security

本当にプリペアードクエリだけを使っていますか?

'SELECT '.pg_escape_idetifier($_GET['col']).' WHERE '.pg_escape_identifier('tbl').' ORDER BY '.pg_escape_idetifier($_GET['col']) SQLクエリにはプリペアードクエリを使いましょう!と言われて久しいです。私もプリペアードクエリを積極的…

DBMSの脆弱なAPI仕様は何時まで放置されるのか?

広く使われているデータベースでもAPIが仕様として脆弱な物が長年放置されています。OracleやMS SQL Serverを利用している方ならよくご存知だと思います。 (さらに…)

ネットワークから学ぶソフトウェアセキュリティの基礎

Slideshareで「ネットワークから学ぶソフトウェアセキュリティの基礎」を公開しました。 ネットワークの世界で”当たり前”のセキュリティアーキテクチャーですが、残念ながらソフトウェアの世界では”当たり前”ではありません。 必要なセキュリティ対策やアーキテクチャーは状況やニーズによって変わります。セキュリティについて様々な考え方を持つことは構わないのですが…

セキュアコーディング/セキュアプログラミングが流行らない理由

ISO 27000(ISMS)をはじめ、セキュアコーディング/セキュアプログラミングを行いなさい、と推奨するセキュリティガイドラインが多くあります。2014年改訂のISO 27000に至っては、セキュアプログラミングが広く普及したのでセキュアプログラミングを行うとする記述に簡素化しています。1 しかし、広く使われているフレームワークでさえセキュアコーディング…

5分で解るセキュアコーディング

セキュアコーディングで最も重要な部分を理解するのは簡単です。スライドを作ったので公開します。 https://www.slideshare.net/yohgaki/5-77628242 出力対策だけのセキュリティ対策は”誤り”です。 https://blog.ohgaki.net/reason-why-output-only-security-is-desi…

2017年版OWASP TOP 10

追記: 8月現在では、OWASP TOP 10 2017はWAFのプロモーションになっている、OWASP Proactive Controlsの"全ての入力をバリデーションする”と重複している、などの点が議論になりRCはリジェクトされ11月にリリースを目指して調整中になっています。 追記2:正式版が2017年12月にリリースされました。ここで紹介している脆弱…

出鱈目なシグニチャのhash_hkdf関数を安全に使う方法

ユーザーが間違った使い方をしないよう、PHP 7.1に追加されたhash_hkdf関数のシグニチャが出鱈目である件について書いておきます。使い方を間違えると脆弱な実装になるので注意してください。 (さらに…)

PHP:タイプヒントを使うと遅くなる

PHPにはタイプヒントと呼ばれる引数/戻り値データ型指定機能があります。これは便利な機能ですが性能に影響を与えます。 (さらに…)

2017年度版 OWASP TOP 10 で変るWebセキュリティのルール

追記: 8月現在では、OWASP TOP 10 2017はWAFのプロモーションになっている、OWASP Proactive Controlsの"全ての入力をバリデーションする”と重複している、などの点が議論になりRCはリジェクトされ11月にリリースを目指して調整中になっています。 追記2:12月現在ではPDF版がリリースされています。現時点ではWebページ…

入力値の種類は3種類しかない

入力の種類には3種類以上の種類、名前、電話番号、住所など沢山の種類があります。しかし、見方によってはたった3種類しかありません。この区別ができる/できない、で大きな違いができてしまいます。 (さらに…)