Development
不整合が起きてはならない場合、トランザクションはシリアライザブル
リレーショナルデータベースが優れている点はトランザクションをサポートしている点です。トランザクションは手続きが一貫性ある形で実行されることを保証してくれます。しかし、トランザクションを使えばOK、という物ではありません。
PHPスクリプトファイルアップロード攻撃を防止する方法
PHPはスクリプトアップロードに弱いシステムですが、PHPアプリにはファイルアップロードをサポートしているアプリが数多くあります。WordPressなど自動更新を行うアプリも増えてきました。 PHPアプリの場合、MVCフレームワークなどを使っていてもエントリポイントにはPHPファイルが必要です。ファイルアップロードをより安全に使うための設定も可能ですが、Wo…
開発者でなくても解るセキュリティ対策 – 入力バリデーション編
ITシステムに限らずセキュリティ対策で最初に行うべき対策は境界防御(契約による設計と信頼境界線、標準と基本概念、開発者は必修SANS TOP 25)です。このブログでは何度も取り上げていますが、最も重要なセキュリティ対策である境界防御の概念は正しく認識されていない場合がよくあります。 開発者であるから「これで解るはず」と思い書いたエントリは幾つか(「合成の誤…
今すぐできる、WordPressサイトへの2要素認証導入
このブログもWordpressです。パスワードの辞書攻撃、ブルートフォース攻撃を思われるアクセスが大量にあります。Wordpressへの2要素認証導入はプラグインのインストールだけでできます。 開発者向けの2要素認証導入もブログに書いています。開発者の方は早めに自分のサイト/サービスに2要素認証を導入することをお勧めします。
OTP(ワンタイムパスワード、2要素認証)とタイミング攻撃
今すぐできる、Webサイトへの2要素認証導入と2要素認証のTOTPとHOTP、どちらがより安全か?で紹介したGoogleAuthenticatorですが、ソースコードを確認ところタイミング攻撃に脆弱でした。Pull Requestを後で送る予定ですが、利用される場合は脆弱性を修正してから使ってください。
Laravelエキスパート養成読本
PHPのWebアプリケーションフレームワークとして人気を得つつあるLaravelの入門書「Laravelエキスパート養成読本」を献本頂きました。Software Design Plusのムック本になっています。
PHP7のタイプヒントベストプラクティス
PHP7から基本的なデータ型(整数型、浮動小数点型、配列型)タイプヒントが追加されます。直感的に書くコードと正しいコードには乖離があります。PHP7でタイプヒントを使う場合のベストプラクティスを紹介します。 タイプヒントとタイプヒントの問題点については前回のブログを参照してください。