カテゴリー
Database Development PHP Security Programming Secure Coding Security

JSONPathインジェクション

JSONPathはCSSのセレクタやXPathのクエリのような形でJSON形式のデータを選択/クエリする仕様です。

JSONPathの説明はしないのでオンラインの評価環境で仕様は把握してください。

https://jsonpath.com/

JSONPathクエリは上記のような”意味を持つ文字”を使ってクエリを実行します。インジェクション攻撃は一文字でも意味がある文字があると攻撃される、と思って構わないです。JSONPathクエリもインジェクション攻撃が可能です。

カテゴリー
Computer Development PHP Security Programming

特定の処理を行うデータを渡すURLの作り方

Webアプリケーションを作っているとデータの完全性と機密性を保ちつつ「特定の処理を行うデータを渡すURL」を作りたくなる場合があります。

例えば、特定のURLをクリックすると特定ユーザーの連絡先にユーザーを登録する、などです。

カテゴリー
Computer Development PHP Security Programming Secure Coding

データ型とセキュアコーディング

このブログではどのように”データ型”の概念とセキュアコーディングが関連しているのか、Webサーバーアプリを主体に説明します。

セキュアコーディングの基本を理解している必要がありますが、難しくはないです。原則を知っているだけで十分です。セキュアコーディングの10原則は次の通りです。

1番目の原則「入力をバリデーションする」がデータ型と関連します。

カテゴリー
Development PHP Security Programming Secure Coding

ソフトウェアに入力バリデーションは必要ない 〜 ただし条件付きで

「ソフトウェアには入力バリデーションは必要ない」そんな事がある訳けないだろう?!いつも言っている事と真逆でしょ?!と思うでしょう。

しかし、「入力バリデーションが必要ないソフトウェア(=コード)」は沢山あります、条件付きですが。

カテゴリー
Development PHP Security Programming Secure Coding

コードの共通化を原則とするのはアンチプラクティス 〜 現代のプログラミング原則

同じ処理を行うコードの共通化は、基本的には、ベストプラクティスです。しかし、アンチプラクティスとなる場合もあります。

カテゴリー
Development PHP Security Programming Secure Coding

開発者必修の7PKとは?

7PKという用語を聞いた事がある開発者も多いと思います。7PKは業界標準のソフトウェアセキュリティ分類です。まだの方はこれを機会に是非覚えてください。CERT Top 10 Secure Coding Practicesと同じく開発者全員に必修の用語と概念と言えます。何故なら、CERT Top 10 Secure Coding Practicesも7PKも知らないのならISO 27000(ISMS)、NIST SP800-171に対応するアプリケーションは作れないからです。

※ 7PKやCERTセキュアコーディング原則を知らなくても、セキュアなソフトウェアを作ることも可能かも知れません。しかし、それはかなり遠回りになるでしょう。

カテゴリー
Development PHP Security Programming Secure Coding

MITREがCWEを大幅更新 〜 セキュアコーディング対応を強化 〜

CWEはセキュアなソフトウェア開発を行う開発者にとっては欠かせない情報源です。2019年1月3日にCWE (Common Weakness Enumeration – 共通脆弱性タイプ) 3.2が公開されました。大幅更新と言える内容になっています。

この更新を一言で言うと「セキュアコーディング対応の強化」でしょう。