月: 2015年4月

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要素認証を自分のサービス/プロダクトに導入してください。

もっと読む

岡山大学大学院平成27年度ビジネスマインド養成講座のご案内

追記:平成29年度の講座の情報は

をご覧ください。

岡山大学大学院 平成27年度ビジネスマインド養成講座のご案内です。想定している対象は大学教職員、学生およびIT関連のマネジメントを行う社会人を対象とした無償の講座ですが、ITにはマネジメントが欠かせません。IT技術者の方にも有用な講座です。

岡山でも技術系/交流系の勉強会が色々行われていますが、マネジメント系を対象とした物は少ないと思います。講義は岡山大学の島津キャンパスで行われます。お誘い合わせの上、お申し込みをお願いいたします。

追記:残席があるようです。この日でもまだ参加できるようなので、いつでもご連絡ください。手配致します。2015/6/25

もっと読む

PHPポケットリファレンスのサポートページ

PHPポケットりファンレス

の正誤表などを記載した個人的なサポートページを作りました。

間違いや解りずらい点などは気軽にメールでお知らせください。

PHP7のタイプヒントベストプラクティス

PHP 7から基本的なデータ型(整数型、浮動小数点型、配列型)タイプヒントが追加されます。直感的に書くコードと正しいコードには乖離があります。PHP7でタイプヒントを使う場合のベストプラクティスを紹介します。

タイプヒントとタイプヒントの問題点については前回のブログを参照してください。

もっと読む

PHP7とjson_decodeとjson_encodeの困った仕様 – 数値型データの問題

PHP7からint/float/arrayの基本的データ型のタイプヒントが導入されます。タイプヒントには困った問題があります。その問題を更に複雑にするjson_decode関数のデータ型変換問題があります。

JSONデータの数値型データ※が特定の型に変換される問題はPHPのjson_decode関数に限った問題ではなく、JSONを利用する処理系を作る全ての開発者が注意すべき問題です。

※正確には数値型データと書くより「数値型リテラル」と記述するべきですが、「数値型データ」とします。

もっと読む