WEB+DB PRESS Vol.103

サポートページ

この記事を読むのに必要な時間:およそ 0.5 分

ダウンロード

■ご注意
  • 本コーナーは,本誌記事参考用資料としてのご提供を目的としております。
  • 本誌記載の内容およびサポートサイトで公開しているサンプルコードに基づく運用の結果について,記事の筆者,プログラムの作者/提供元,(株)技術評論社は一切の責任を負いかねます。ご自身の責任のもと,ご使用ください。
  • 各サンプルファイル/ソースコードには,個別に,ライセンスやREADMEファイルなどで注意事項/制限事項が添付されている場合がございます。その場合,該当のライセンス,注意事項/制限事項を優先して適用とさせていただきますので,ダウンロード後,内容をご確認ください。

特集1「体験! 脆弱性の見つけ方&ふさぎ方」

その他のファイルは執筆者のGitHubアカウントからダウンロードしてください。

利用上の注意

Bad SNSにはさまざまな脆弱性が仕込まれており,SNSの動作する仮想マシンが同一ネットワーク上のほかのマシンから攻撃を受ける恐れがあります。必ず本特集を参考に,安全なネットワーク上で行ってください。Bad SNSを利用して起こったいかなる損害も,著者,ソフトウェアの開発元および提供元,㈱技術評論社は一切の責任を負いかねますので,あらかじめご了承ください。

特集2「Ruby最前線」

特集3「今こそ始めるOpenStack」

連載

  • 「どんとこい! フロントエンド開発」で使用されたソースコード
  • 「実践! 先進的インフラ運用 ── 検索してもでてこない,ホスティングの現場で培ったノウハウ」で使用されたソースコード
  • 「Goに入りては…… ── When In Go...」で使用されたソースコード
  • 「Rubyドキドキ調査隊」で使用されたソースコード
  • 「事業を支えるPHP」で使用されたソースコード
  • 「Perl Hackers Hub」で使用されたソースコード
  • 「Javaの新定石 ── モダンな技術で現場を加速!」で使用されたソースコード

補足情報

特集3「今こそ始めるOpenStack」
第2章「OpenStack の構築方法」
P.85「Packstackのインストール」

(2018年3月15日更新)

2018年2月28日に,OpenStackの新しいバージョンQueensがリリースされました。紙面では,

$ yum install -y https://rdoproject.org/repos/rdo-release.rpm

と表記しPikeを利用していましたが,Queensのリリースに伴いPikeのパッケージを直接指定しないと以降の説明通りに手順が進まなくなりました。そのため,

$ yum install -y https://repos.fedorapeople.org/repos/openstack/openstack-pike/rdo-release-pike-1.noarch.rpm

としてください。


連載「事業を支えるPHP」
P.132

(2018年3月20日更新)

「すべて配列がコピーされる挙動になります。」と表現しましたが,コピーのタイミングを考慮すると「渡された配列に変更が加えられたときにコピーされる挙動になります。」と表現する方がより適切でした。

PHPではコピー先の配列に対して変更を加えてもコピー元の配列に対して変更は加わらないことの説明を重視していたため,コピーのタイミングに関しては言及していませんでした。PHPではCopy on Write機能によって変更が行われ必要となったタイミングで実際のコピーは行うようにして無駄なメモリコピーを減らしています。そのため,代入した直後にコピーされると読み取れてしまう表現は適切ではありませんでした。上記の通り補足させていただきます。

$array1 = ['hoge' => 'fuga'];

// 配列がコピーされる(Copy on Write)
$array2 = $array1; 

// 値の編集が発生する際に実際のコピーは行われメモリを消費する
$array2['hoge'] = 'piyo'; 

メモリ周りについての説明が不十分で誤解を招く表現となっていたことお詫び致します。

お詫びと訂正(正誤表)

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2018年3月13日最終更新)

特集1「体験! 脆弱性の見つけ方&ふさぎ方」
第3章「新規ユーザー登録画面に潜む脆弱性」
P.24 リスト2


enc_cookie = CGI::unescape(session_cookie)


enc_cookie = CGI::unescape(enc_cookie)