Programming
特定の処理を行うデータを渡すURLの作り方
Webアプリケーションを作っているとデータの完全性と機密性を保ちつつ「特定の処理を行うデータを渡すURL」を作りたくなる場合があります。 例えば、特定のURLをクリックすると特定ユーザーの連絡先にユーザーを登録する、などです。 (さらに…)
データ型とセキュアコーディング
このブログではどのように”データ型”の概念とセキュアコーディングが関連しているのか、Webサーバーアプリを主体に説明します。 セキュアコーディングの基本を理解している必要がありますが、難しくはないです。原則を知っているだけで十分です。セキュアコーディングの10原則は次の通りです。 第1 入力をバリデーションする第2 コンパイラの警告に用心する第3 セキュリテ…
ソフトウェアに入力バリデーションは必要ない 〜 ただし条件付きで
「ソフトウェアには入力バリデーションは必要ない」そんな事がある訳けないだろう?!いつも言っている事と真逆でしょ?!と思うでしょう。 しかし、「入力バリデーションが必要ないソフトウェア(=コード)」は沢山あります、条件付きですが。 (さらに…)
セキュリティ機能の利用はソフトウェアセキュリティではない
7PK(7つの悪質な領域 - CWE-700として定義されている業界標準のソフトウェアセキュリティ分類)では「セキュリティ機能はソフトウェアセキュリティではない」としています。明白なのは「他のソフトウェアやデバイスのセキュリティ機能によるセキュリティ」です。7PKでは例としてHTTPSを挙げています。 HTTPSは必要なセキュリティ機能ですが、HTTPSの利…
7PK – セキュリティソフトウェア ≠ ソフトウェアセキュリティ
CWE-700としても知られる7PK(7つの悪質な領域/王国)のIEEE Explorerの論文解説では、「セキュリティ機能(Security features)」はソフトウェアセキュリティではない、としています。 Software security isn't security software. All the magic crypto fairy du…
コードの共通化を原則とするのはアンチプラクティス 〜 現代のプログラミング原則
同じ処理を行うコードの共通化は、基本的には、ベストプラクティスです。しかし、アンチプラクティスとなる場合もあります。 (さらに…)