すこし古い(2012年)ハーバード大学での「動的Webサイト構築」の動画です。英語の勉強を兼て基礎からWeb開発を学ぶには良い動画です。長いので流石に全部は見ていません。しかし、ほとんどの内容は現在でも通用する物になっていると思います。
カテゴリー: Development
-
不整合が起きてはならない場合、トランザクションはシリアライザブル
リレーショナルデータベースが優れている点はトランザクションをサポートしている点です。トランザクションは手続きが一貫性ある形で実行されることを保証してくれます。しかし、トランザクションを使えばOK、という物ではありません。
もしトランザクションさえ使っていればOKと思っていた方はトランザクション分離レベルを理解してください。
-
PHPスクリプトファイルアップロード攻撃を防止する方法
PHPはスクリプトアップロードに弱いシステムですが、PHPアプリにはファイルアップロードをサポートしているアプリが数多くあります。WordPressなど自動更新を行うアプリも増えてきました。
PHPアプリの場合、MVCフレームワークなどを使っていてもエントリポイントにはPHPファイルが必要です。ファイルアップロードをより安全に使うための設定も可能ですが、WordPressのようなファイル配置で自動更新を行っているアプリの場合、攻撃を完全に防ぐ事ができません。
しかし、簡単な方法でドキュメントルート以下のPHPファイルの実行をホワイトリストで防御することができます。
-
開発者でなくても解るセキュリティ対策 – 入力バリデーション編
ITシステムに限らずセキュリティ対策で最初に行うべき対策は境界防御(契約による設計と信頼境界線、標準と基本概念、開発者は必修SANS TOP 25)です。ソフトウェアにおける境界防御の第一番は入力の確認(入力の確実な制御)です。このブログでは何度も取り上げていますが、最も重要なセキュリティ対策である境界防御の概念と入力の確認が正しく認識されていない場合がよくあります。
開発者であるから「これで解るはず」と思い書いたエントリは幾つか(「合成の誤謬」の罠、エンジニアに見られるセキュリティ対策理解の壁など)ありますが、どうも成功しているとは言えないようです。今回は開発者でなくても理解できるよう努力してみます。
ホワイトリストの基本中の基本は”デフォルトで全て拒否する”であることに注意してください。全て拒否した上で、許可するモノ、を指定しないとホワイトリストになりません。
-
今すぐできる、WordPressサイトへの2要素認証導入
このブログもWordPressです。パスワードの辞書攻撃、ブルートフォース攻撃を思われるアクセスが大量にあります。WordPressへの2要素認証導入はプラグインのインストールだけでできます。
開発者向けの2要素認証導入もブログに書いています。開発者の方は早めに自分のサイト/サービスに2要素認証を導入することをお勧めします。
-
OTP(ワンタイムパスワード、2要素認証)とタイミング攻撃
今すぐできる、Webサイトへの2要素認証導入と2要素認証のTOTPとHOTP、どちらがより安全か?で紹介したGoogleAuthenticatorですが、ソースコードを確認ところタイミング攻撃に脆弱でした。Pull Requestを後で送る予定ですが、利用される場合は脆弱性を修正してから使ってください。
-
2要素認証のTOTPとHOTP、どちらがより安全か?
今すぐできる、Webサイトへの2要素認証導入では簡単に2要素認証が導入できること、2要素認証には
- 時間ベースのOTP(TOTP:Time-based One Time Password RFC 6238)
- カウンターベースのOTP(HOTP:HMAC-based One-Time Password RFC 4226)
があることを紹介しました。Google認証は両方をサポートしています。※
※ 今すぐできる、Webサイトへの2要素認証導入で紹介したライブラリはTOTPのみサポートしています。
-
今すぐできる、Webサイトへの2要素認証導入
Google、Facebook、Amazon(AWS)、Githubなど、大手Webサービス会社が2要素認証を取り入れてしばらく経っています。自分のWebサイトでも2要素認証を導入したい!と思ったことは無いですか?
簡単に可能です!
パスワード認証だけではもう安全とは言えません。ぜひ2要素認証を自分のサービス/プロダクトに導入してください。
-
Laravelエキスパート養成読本
PHP用Webアプリケーションフレームワークとして人気を得つつあるLaravelの入門書「Laravelエキスパート養成読本」を献本頂きました。Software Design Plusのムック本になっています。
-
PHP7のタイプヒントベストプラクティス
PHP 7から基本的なデータ型(整数型、浮動小数点型、配列型)タイプヒントが追加されます。直感的に書くコードと正しいコードには乖離があります。PHP7でタイプヒントを使う場合のベストプラクティスを紹介します。
タイプヒントとタイプヒントの問題点については前回のブログを参照してください。
-
PHP7で追加される整数型、浮動小数点型タイプヒントの問題点
PHP7では整数型、浮動小数点型、配列型のタイプヒントが追加されます。データ型をより厳格に取り扱うようになるのは良い事ですが、データ型を変換してしまうため問題となる場合もあります。
データ型は指定した型に変換すればよい、という単純な物ではありません。私はデータ型を変換しない方のRFCを支持していました。残念ながらこちらのRFCでなく、問題が多い方のRFCが採用されることになりました。
参考
-
PHPポケットリファレンス改訂第三版
PHP5.6にも対応したPHPポケットリファレンス改訂第三版が今月初め頃から購入可能になっています。こちらの案内もブログを書く時間がなく、ここに記載できていませんでした。
- [改訂第3版]PHPポケットリファレンス
(アマゾン)
- [改訂第3版]PHPポケットリファレンス (電子版)(技術評論社) (さらに…)
- [改訂第3版]PHPポケットリファレンス
-
アプリケーション仕様とセキュリティ仕様の関係
アプリケーション(ソフトウェア)仕様とセキュリティ仕様の関係とその特徴は正しく理解しておく必要があります。この関係と仕様の特徴を正しく理解しておかないと根本的な部分での間違いにつながります。
