Kindle 価格: ¥2,772

(税込)

獲得ポイント:
28ポイント (1%)

これらのプロモーションはこの商品に適用されます:

一部のプロモーションは他のセールと組み合わせることができますが、それ以外のプロモーションは組み合わせることはできません。詳細については、これらのプロモーションに関連する規約をご覧ください。

を購読しました。 続刊の配信が可能になってから24時間以内に予約注文します。最新刊がリリースされると、予約注文期間中に利用可能な最低価格がデフォルトで設定している支払い方法に請求されます。
メンバーシップおよび購読」で、支払い方法や端末の更新、続刊のスキップやキャンセルができます。
Kindleアプリのロゴ画像

無料のKindleアプリをダウンロードして、スマートフォン、タブレット、またはコンピューターで今すぐKindle本を読むことができます。Kindleデバイスは必要ありません

ウェブ版Kindleなら、お使いのブラウザですぐにお読みいただけます。

携帯電話のカメラを使用する - 以下のコードをスキャンし、Kindleアプリをダウンロードしてください。

KindleアプリをダウンロードするためのQRコード

何か問題が発生しました。後で再度リクエストしてください。

体系的に学ぶ 安全なWebアプリケーションの作り方[固定版] 脆弱性が生まれる原理と対策の実践 Kindle版

4.1 5つ星のうち4.1 64個の評価

※この電子書籍には内容を改定した「第2版」があります。ご購入の際はご注意ください。

正しい知識でWebアプリの脆弱性を解消!


※この電子書籍は、「固定レイアウト型」で配信されております。説明文の最後の「固定レイアウト型に関する注意事項」を必ずお読みください。

Webアプリケーションにはなぜ脆弱性が生まれるのか? 脆弱性を解消するにはどうプログラミングすればよいか? 仮想マシン上で動作する脆弱性サンプルへの攻撃を通して具体的な脅威と対処方法が学べる、すべてのWebアプリケーション開発者必携の決定版解説書!

●目次
1章 Webアプリケーションの脆弱性とは
1.1 脆弱性とは、「悪用できるバグ」
1.2 脆弱性があるとなぜ駄目なのか
1.3 脆弱性が生まれる理由
ほか

2章 実習環境のセットアップ
2.1 実習環境の概要
2.2 VMware Playerのインストール
2.3 仮想マシンのインストールと動作確認
ほか

3章 Webセキュリティの基礎 ~HTTP、セッション管理、同一生成元ポリシー
3.1 HTTPとセッション管理
3.2 受動的攻撃と同一生成元ポリシー

4章 Webアプリケーションの機能別に見るセキュリティバグ
4.1 Webアプリケーションの機能と脆弱性の対応
4.2 入力処理とセキュリティ
4.3 表示処理に伴う問題
4.4 SQL呼び出しに伴う脆弱性
4.5 「重要な処理」の際に混入する脆弱性
4.6 セッション管理の不備
4.7 リダイレクト処理にまつわる脆弱性
4.8 クッキー出力にまつわる脆弱性
4.9 メール送信の問題
4.10 ファイルアクセスにまつわる問題
ほか

5章 代表的なセキュリティ機能
5.1 認証
5.2 アカウント管理
5.3 認可
ほか

6章 文字コードとセキュリティ
6.1 文字コードとセキュリティの概要
6.2 文字集合
ほか

7章 携帯電話向けWebアプリケーションの脆弱性対策
7.1 携帯電話向けWebアプリケーションの技術的特徴
ほか

8章 Webサイトの安全性を高めるために
8.1 Webサーバーへの攻撃経路と対策
ほか

9章 安全なWebアプリケーションのための開発マネジメント
9.1 開発マネジメントにおけるセキュリティ施策の全体像
ほか

固定レイアウト型に関する注意事項(必ずお読みください)
この電子書籍は、全ページ画像の「固定レイアウト型」で配信されております。以下の点にご注意し、購入前にプレビュー表示をご確認の上、ご購入ください。

■使用できない機能
・文字拡大(ピンチイン・ピンチアウトは可能ですが、画面におさまらない場合は画面をスワイプ)/文字のコピー/マーク/ハイライト/文字列検索/辞書の参照/Web検索/引用

■推奨環境
・タブレットなど大きいディスプレイを備えた端末
・Wi-Fiネットワーク経由でのダウンロード(Kindle端末の場合)
続きを読む もっと少なく読む
この本はファイルサイズが大きいため、ダウンロードに時間がかかる場合があります。Kindle端末では、この本を3G接続でダウンロードすることができませんので、Wi-Fiネットワークをご利用ください。

商品の説明

出版社からのコメント

◎著者より

Webプログラマの必修知識を一冊に凝縮!


●「第1章 Webアプリケーションの脆弱性とは」では、
本書全体のテーマである脆弱性(ぜいじゃくせい)についての概要を説明します。

●「第2章 実習環境のセットアップ」では、
本書の脆弱性のサンプルを動作させるために必要な環境をセットアップします。

●「第3章 Webセキュリティの基礎」では、Webセキュリティの前提となる基礎知識を説明します。
前半でHTTPとセッション管理をした後、
後半ではブラウザのセキュリティ機能の1つである同一生成元ポリシーについて説明します。

●「第4章 Webアプリケーションの機能別に見るセキュリティバグ」では、
Webアプリケーションの脆弱性について、発生原理や脆弱性による影響、対策などを詳しく説明します。
まず、脆弱性の全体像を把握するために、Webアプリケーションの機能と脆弱性の関係を説明します。
次にWebアプリケーションの「入力」と脆弱性の関係を説明します。

●「第5章 代表的なセキュリティ機能」では、代表的なセキュリティ機能を取り上げ、どのような脅威があるか、
脅威に対抗するにはどのような機能が仕様として必要かを説明します。

●「第6章 文字コードとセキュリティ」では文字コードの扱いに起因する脆弱性について説明します。
前半では、文字コードの入門として、文字集合と文字エンコーディングについて、後半では、
文字集合や文字エンコーディングの扱いに起因する脆弱性について説明した後、文字コードの正しい扱いについて説明します。

●「第7章 携帯電話向けWebアプリケーションの脆弱性対策」では、
携帯電話向けWebアプリケーションの脆弱性について説明します。
iモードやEZweb、Yahoo!ケータイなどのフィーチャーフォンのサービスです。

●「第8章 Webサイトの安全性を高めるために」では、
アプリケーション以外の側面からWebサイトの安全性を高める施策について説明します。
Webサイトに対する攻撃手段の全体像の説明後、それぞれに対して基盤ソフトウェアの脆弱性対処や、
成りすまし、盗聴、改ざんの対策、マルウェアへの対処について説明します。

●「第9章 安全なWebアプリケーションのための開発マネジメント」では、
安全なアプリケーション開発のために必要なマネジメントについて説明します。

著者について

●徳丸 浩(とくまる ひろし)
1985年京セラ株式会社に入社後、ソフトウェアの開発。企画に従事。
1999年に携帯電話向け認証課金基盤の方向設計を担当したことをきっかけに
Webアプリケーションのセキュリティに興味を持つ。
2004年同分野を事業化。2008年独立。脆弱性診断やコンサルティング業務のかたわら、
ブログや勉強会を通じてセキュリティの啓蒙活動を行っている。
HASHコンサルティング株式会社代表、京セラコミュニケーションシステム株式会社技術顧問、
独立行政法人情報処理推進機構(IPA)非常勤研究員。

登録情報

  • ASIN ‏ : ‎ B00E5TJ120
  • 出版社 ‏ : ‎ SBクリエイティブ (2011/2/28)
  • 発売日 ‏ : ‎ 2011/2/28
  • 言語 ‏ : ‎ 日本語
  • ファイルサイズ ‏ : ‎ 507613 KB
  • Text-to-Speech(テキスト読み上げ機能) ‏ : ‎ 有効になっていません。
  • X-Ray ‏ : ‎ 有効にされていません
  • Word Wise ‏ : ‎ 有効にされていません
  • 付箋メモ ‏ : ‎ 有効になっていません
  • 本の長さ ‏ : ‎ 499ページ
  • カスタマーレビュー:
    4.1 5つ星のうち4.1 64個の評価

著者について

著者をフォローして、新作のアップデートや改善されたおすすめを入手してください。

カスタマーレビュー

星5つ中4.1つ
5つのうち4.1つ
64グローバルレーティング

この商品をレビュー

他のお客様にも意見を伝えましょう

上位レビュー、対象国: 日本

2013年4月19日に日本でレビュー済み
Amazonで購入
オンラインを見渡すと、さまざまなセキュリティに関する議論や資料が公開されているものの、問題の定義があやふやであったり、脆弱性の再現方法を示さないまま、対策を挙げるなど、方法論に問題があるために、対策の効果がなかったり、議論がすれちがったり、発散してしまうなど、非生産的な結果になってしまうケースは少なからず存在する。

本書は、全体にわたって、統一されたステップ方式を採用し、有意義な議論ができるように配慮しているだけでなく、何がも問題を懇切丁寧に説明し、独学や初学者に配慮している。本書はセキュリティだけでなく PHP によるアプリケーション開発の学習書としてもすぐれている。PHP のコミュニティにおいて、技術と社会の進歩とともに、不適切な教科書やチュートリアルが英語圏でも社会問題になってきており、入門者のための学習資料を提供することを目的とする PHP: The Right Way は2013年4月の時点で11カ国語に翻訳されている。

ステップ方式の活用は政策学や交渉学など社会学のさまざまな分野で見られる。オバマ政権の政策立案にも参画するカリフォルニア大学バークレー校の教授陣が執筆した「
政策立案の技法 」で政策分析を8つのステップにわけている(問題を定義する、証拠を集める、政策オプションを組み立てる、評価基準を選ぶ、成果を予測する、トレードオフに立ち向かう、決断!、ストーリーを語る)。同書の「8つのステップの精神」の節では政策分析が貢献できることは主張の価値を明らかにすることで紛争の解決を導き、共通の立場を浮き彫りにすることでコミュニティを形成することである。

開発標準のドキュメントが機能していない企業が少なからず存在するなか(p457)、本書は自らが開発標準のお手本を示している。

経営学の分野において、ゼロ年代後半から経営戦略が機能しなかったり、戦略立案が無意味な儀式になる問題を取り上げた書籍が無数に存在するので、これらの書籍をドキュメント評価の判断材料に使うことができるだろう。ルメルトの「
良い戦略、悪い戦略 」は悪い戦略の特徴として「空疎である」「重大な問題に取り組まない」「目標を戦略ととりちがえている」「まちがった戦略目標を掲げる」を挙げている。「 〔エッセンシャル版〕マイケル・ポーターの競争戦略 」の「よくある質問」の章では、すぐれたリーダーは戦略論を教える教師のようなものとし、定期的に戦略の学習を繰り返していることを伝えている。ドキュメントを作ったまま放置することなく、継続的な改善に取り組めるようにすることはマネジメントの大きな課題である。

本書の PHP コードに関して、PHP 5.3 以降を対象とした改善案と追加情報を記述する。

学習全体の影響を考慮して、最初に「6 文字コードとセキュリティ」について述べる。今後改定版が出版されたときに UTF-8 に関する記述の追加や改善を期待したい。

本書では RFC 3629 にならい、UTF-8 のコードポイントと各バイトの範囲に2進法が採用されているが、コードを書く観点からすると各バイトの範囲を16進法で表記したほうが紙面は増えるもののわかりやすいのではないと思う。Unicode Standard 6.2 の Table 3-7. Well-Formed UTF-8 Byte Sequences は16進数表記を採用している。

先行バイトと後続バイトの範囲を示した図6-17(p386)はおおまかな範囲を理解するという目的には便利であるが、上記の各バイトの範囲の知識がないと、後続バイトの範囲はすべて 0x80 - 0xBF と決めつけ、
2バイト目の範囲が 0x80 - 0xBF よりも狭くなる3バイト文字、4バイト文字を考慮しない脆弱なコードを書いてしまうおそれがある。

非最短形式の置き換えルールについて述べる。

UNICODE SECURITY CONSIDERATIONS (UTR#36) では不正な文字を暗黙のうちに削除することで、削除前は安全だった文字列が危険な文字列に変わってしまう例を挙げ、
暗黙のうちに文字を削除すべきではないことを述べている。置き換える必要がある場合、代替文字として U+FFFD を挙げている。PHP において mb_convert_encoding 以外に不正なバイト列を置き換える方法として、PHP 5.4 では htmlspecialchars に ENT_SUBSTITUTE オプション、PHP 5.5 では UConverter::transcode メソッドが追加された。

Unicode Standard 6.2 の Table 3-8. Use of U+FFFD in UTF-8 Conversion は非最短形式の置き換えルールの例を示している。このルールによれば、非最短の3バイト文字のうち、先行バイトが正しいものの、後続バイトが1つしかないもの、4バイト文字のうち、先行バイトが正しいもの後続バイトが1、2バイトしかないものは1つの文字として扱い、代替文字に置き換える。このルールは Ruby 1.9 の文字列処理、上記で挙げた PHP の関数に採用されている。

文字コードに関する記述は以上であり、今度は前の章から述べてゆく。

「3.1 HTTP とセッション管理」において、エラー抑制演算子の @ が使われているコードがあるが(p31、p32、p40、p44)、パフォーマンスの劣化とバグ発見の阻害要因になるので、必要なインク量は増えるが、できるかぎり isset を使うべきである。

「4.3.2 クロスサイト・スクリプティング(発展編)」の Unicode エスケープによる対策(p113)において、PHP 5.3 以降であれば preg_replace_callback に指定されている unicode_escape 関数をクロージャに移行すれば、名前空間の汚染を減らすことができる。JavaScript の学習も兼ねて、PHP でもクロージャを意識的に使ったほうがよいだろう。

「4.4 SQL 呼び出しに伴う脆弱性」の章では、データベース抽象化レイヤーの例として MDB2 が採用されている(p131、p134)が、PHP 5.3 以降であれば、Doctrine DBAL をおすすめする。MDB2 のコードの一部を継承していて、後続プロジェクトとして見ることができるだけでなく、開発が盛んであり、同じプロジェクトの成果物である Doctrine ORM がコードの品質で定評のある Symfony のプロジェクトで採用されているからだ。

「PHP+PDO+MySQLの安全な接続方法」(p139)のコードの記述に関して、文字コードを指定するために PDO::MYSQL_ATTR_READ_DEFAULT_FILE と PDO::MYSQL_ATTR_READ_DEFAULT_GROUP オプションが使われているが、PDO を with-pdo-mysql=mysqlnd オプションつきでコンパイルした場合、利用できないことを追記すべきである。PHP 5.4 では mysqlnd がデフォルトオプションに変更された。PHP 5.3.6 以降であれば PDO のコンストラクタパラメータに charset オプションを指定できるようになった。新しいプロジェクトでは mysqlnd のコンパイルオプションと charset パラメータを前提にしたほうがよいだろう。

PDO::ATTR_EMULATE_PREPARES のデフォルト値が true になっている理由はデータベースの負荷が問題になったからである。MySQL 5.1.17 以前ではプリペアドステートメントのクエリキャッシュが利用できなかった。2013年の時点で PDO::ATTR_EMULATE_PREPARES のデフォルト値を false に変更する提案は存在するが、PHP コアに取り込まれる動きはない。Unicode 6.0 に対応した MySQL 5.5 以降への世代交代が進み、MySQL 5.1 系のサーバーシェアが大きく減る時期まで待つ必要があるだろう。

「4.2 セッション管理の不備」の「PHP のセッション ID ランダム性を改善する方法」(p163)に関して、PHP 5.4 では session.entropy_file のデフォルト値は利用可能であれば /dev/urandom もしくは /dev/arandom に変更された。/dev/urandom は安全性の面ですぐれている一方で、@IT で公開されている「Linusのクリスマスプレゼントが引き起こした問題」の記事が示すように負荷の大きさが開発者の悩みの種になっていることを追記しておく必要があるだろう。

「セッションIDの変更ができない場合はトークンにより対策する」(p181)において PHP 5.3 以降であれば、Windows とのポータビリティ改善のために、file_get_contents 関数で /dev/urandom にアクセスするコードを OpenSSL 拡張モジュールの openssl_random_pseudo_bytes、mcrypt 拡張モジュールの mcrypt_create_iv に置き換えることができる。

「4.12 ファイルアップロードにまつわる問題」において、pathinfo を使う例に関して、第2引数に PATHINFO_EXTENSION オプションを指定すれば $info 変数を用意しなくてすむ (p266、p267、p272、p273、p281)。

「ファイルのアップロード時の対策」(p277-279) において、PHP 5.3 以降であれば、GD 拡張モジュールの getimagesize のコードは FileInfo 標準モジュールの finfo_file 関数に置き換えるとよいだろう。この関数のソースコードは BSD や Linux の file コマンドに採用されている Fine Free File Command のプロジェクトの成果物を利用している。こちらのほうがポータビリティの面でよい。PHP 5.3 以前でも FileInfo は拡張モジュールとして利用できる。

「4.14 eval にまつわる問題」について。PHP で入力文字列を解釈して実行できる機能を持つ関数(p297)として create_fucntion、preg_replace、mb_ereg_replace が挙げられている。PHP 5.3 以降であれば create_function は無名関数もしくはクロージャに置き換えることができる。PHP 5.5 で preg_replace の e 修飾子は非推奨になり、将来に削除されることになった。preg_replace_callback に置き換えることが推奨されている。PHP 5.4.1 以降であれば、mb_ereg_replace の e 修飾子を使ったコードは mb_ereg_replace_callback に置き換えることができる。前述の preg_replace の仕様変更を踏まえると、 mb_ereg_replace の e 修飾子もいずれ廃止されると予想される。

「5 認証」のハッシュ解読対策の方法の1つであるストレッチングに関して、PHP 5.5 で password_hash などのパスワードハッシュ関数が追加され、自前で関数を定義しなくてもすむようになった。PHP 5.3.7 以降であれば、前述の関数の実装に関わった ircmaxell 氏が同名の関数をユーザー関数として定義した password_compat を github で配布している。
4人のお客様がこれが役に立ったと考えています
レポート
2012年5月1日に日本でレビュー済み
Amazonで購入
Webアプリを作成する上で必要なセキュリティ対策を
1つ1つあげていて、参考になると思う。

ただ、自分はWeb開発を行って10年近くたっているため
目新しい内容は無かったので、
あまりセキュリティなどを意識したことの無い人にこそ
購入をお勧めしたい。

内容的に、PHPの解説が主で、他の言語が少なかったので★4つ。
CDをつけたりしているのだから、そのあたりをもっと充実していただきたい。
2人のお客様がこれが役に立ったと考えています
レポート
2016年2月16日に日本でレビュー済み
Amazonで購入
購入しました。

オープンソースプロジェクトを中心に、だんだんと大きなプロジェクトに参画し、今まで他人任せであったセキュリティの本質を学ぶために購入しました。基礎から応用まで、Web プログラマが知っておくべきことが網羅されていて、Web プログラムであれば購入すべき良書です。

ただ、本書は5年前なので、最新のものに更新してほしいなと切望します。

例えば、最近では、全部スクラッチ開発ではなく、フレームワークやライブラリを使うケースが多くなりました。PHP であれば、 Symfony や Laravel や、Doctrine など MySQL のライブラリなどのフレームワークを使っている時に気をつけるべき脆弱性のコツなんかを説いてほしいな〜と思います。
21人のお客様がこれが役に立ったと考えています
レポート
2013年9月8日に日本でレビュー済み
Amazonで購入
セキュリティに関心はあるけど、何から初めて良いか解らないという人は
まずこれを購入すれば間違いない本です。

WEBアプリを作る上で、よく問題に上がる脆弱性をすべて紹介して
何が危険であるかを実際に攻撃手法を用いて解説しています。
(当然、対策も記載されています。)

私の周りでも、WEBアプリを作る/保守している人は全員購入しました笑
私含め、全員が素人同然だったにも関わらず
本を読んだ後は脆弱性について流暢に持論を展開するようになりました。。

あまりお金を掛けたくない人は、まずIPA(情報処理機構)で無料公開されている
「安全なウェブサイトの作り方」を流し読みすれば良いと思います。

そこから、さらに深く知りたくなった場合はこの本をオススメします。
この本に出会えた幸運に感謝します。

ただ、最近話題になっているDOM base XSSなどは、あまり記述ありません。
やはり脆弱性は日々増加していて、継続して勉強が必要なのか。。。
24人のお客様がこれが役に立ったと考えています
レポート
2018年3月4日に日本でレビュー済み
Amazonで購入
固定レイアウトなのでkindleでは文字が小さくて読みにくい.
4人のお客様がこれが役に立ったと考えています
レポート
2016年12月21日に日本でレビュー済み
Amazonで購入
この本でまぁ、ほとんどのセキュリティホールは何とかなりそうです。
しかし、自分で完全にコードを書くのは面倒なので、この本を読んで、フレームワークを使い、セキュリティに関する知識をもってから、フレームワークの設定などをしながらコードを書くのが得策に思います
8人のお客様がこれが役に立ったと考えています
レポート
2016年9月29日に日本でレビュー済み
セキュリティに興味があったので、テスト環境がCDに入ってるので、実際に脆弱性のチェックができるのが非常に良かった。
脆弱性に関して、幅広く解説されていて、解説も丁寧でよかった。
java使いとしては、サンプルコードが、PHPだったのが少し残念。
脆弱性を含むコードの例は、さすがにこんなコード書くやついないだろーっと思うような、極端なコードも入れてるのが判断に困る所。

色々思うところもあるけれども、幅広くセキュリティが学べるので、良書だと思う。
4人のお客様がこれが役に立ったと考えています
レポート
2011年3月6日に日本でレビュー済み
Amazonで購入
以下の理由から、とても読みやすく、とても頭に入りやすい本であると感じた。

1.基本を飛ばさない点
脆弱性とはどういうもので、なぜ良しとされないのか? という単純な疑問を、まず冒頭で解消してくれる。
開発経験はあるが、とにかく動けば良いのでセキュリティ面は考慮してこなかった、という人でも納得して本編に進むことができる。

2.VMWareを用いた実践形式である点
VMWareの無償版を用いた演習で実際に脆弱性を確認するため、非常に頭に残りやすい。
また、紙の上だけで話が展開される場合よりも、楽しみながら読み進めることができた。

3.根源的な話をしっかりと行っている点
セキュリティ関連の話は正直、難しい。
どうしても、「とりあえず、こうすれば安全なんです」というリストを提示するだけになったり、
比喩を用いることで、本質は分からないが、なんとなく分かったつもりにさせる説明をするといったケースが多く見られる。
しかし本書では、小難しい話になりがちな「同一生成元ポリシー」について丁寧に解説するなど、随所に根源的な理解をしてほしいという意思を感じさせる部分がある。
この点は、私見ではあるが、人に薦められる点であると感じた。

以上の3点より、自信を持って人に薦められると感じたことから、本書の評価は星5つとした。
81人のお客様がこれが役に立ったと考えています
レポート

問題を報告


この商品には、不適切な内容が含まれていますか?
この商品は、著作権を侵害していると思いますか?
この商品には、品質または書式設定の問題が含まれていますか?