[広告] テストデータ生成なら疑似個人情報ジェネレータ!! (People to People Communications 株式会社)
[広告] 疑似個人情報ジェネレータで個人情報漏洩対策!! (People to People Communications 株式会社)
携帯向けサイト | 過去の記事
気になるニュースや時事の話題を毎朝配信!世界と日本の未来を分析します。デジモノや料理の情報、WQXGAサイズの壁紙も。

アメリカ労働省労働統計局が8日発表した4月の雇用統計。失業率は8.9%と、前月から0.4ポイント悪化した。

4月の米失業率、8.9%に悪化 雇用は53万9000人減


トヨタの09年3月期、最終赤字4369億円
トヨタ、8500億円の赤字見込み 国内企業で過去最悪

東芝の10年3月期、最終赤字500億円 09年3月期は赤字3435億円
東芝が資本増強策、28年ぶり公募増資3000億円

GM1─3月決算、赤字60億ドル 売上高ほぼ半減


-- 新型インフル関連

新型インフルエンザは、じわじわと中南米に侵入している。ヨーロッパでも依然としてぽつぽつと感染者が出ている。また、アメリカでは一気に感染者が急増した。

米の感染者、1639人に急増...メキシコ抜き最多
新型インフル 米で感染確認急増、計1600人超える
新型インフル、世界で感染者3400人超す 米で新たに700人

新型インフルエンザ:アルゼンチン、ブラジルでも感染確認

Influenza A(H1N1) update 22 - WHO
アメリカの感染者急増はWHOの報告に反映されていない。

  • メキシコ:1204人(死者44人) <前日 +92人/死者 +2人>
  • アメリカ:896人(死者2人)
  • オーストリア:1人
  • ブラジル:1人 <NEW>
  • カナダ:214人 <前日 +13人>
  • 香港:1人
  • コロンビア:1人
  • コスタリカ:1人
  • デンマーク:1人
  • エルサルバドル:2人
  • フランス:12人 <前日 +7人>
  • ドイツ:11人 <前日 +1人>
  • グアテマラ:1人
  • アイルランド:1人
  • イスラエル:7人 <前日 +1人>
  • イタリア:6人 <前日 +1人>
  • オランダ:4人 <前日 +1人>
  • ニュージーランド:5人
  • ポーランド:1人
  • ポルトガル:1人
  • 韓国:3人
  • スペイン:88人 <前日 +7人>
  • スウェーデン:1人
  • スイス:1人
  • イギリス:34人

アフリカ、インド、中国あたりに侵入したら、一気に状況が変わりそう

香港のホテル隔離解除 280人、1週間ぶり外の空気

良かった。

WHO「軽度」判断→水際作戦見直しへ...厚労省

> 応援の検疫官の多くは、医療現場で患者を診察する医師や看護師

悩ましい問題だよね。非常時にだけ、大量に必要になる人材。自衛隊における即応予備自衛官みたいな制度は作れないかな。フェーズ5が発令されたときだけ検疫官の手伝いをする一般人、みたいな。

人豚鳥混在ウイルス、以前も存在 流行条件整っていた?


-- その他のニュース

被害広がる、民家全焼 多数が避難 加州の大規模火災


国の借金減りはしたが...それでも1人当たり663万円
国の借金846兆円 今年度末には900兆円台へ


草なぎクンの後任「地デジカ」つまずく、説明文を無断引用

自分たちの著作物は頑なに守るけど、他人の著作物はどうでもいいんだよね。ちなみに、Wikipediaの記事のライセンスはGNU Free Documentation Licenseであって、無断引用を問題とする読売は間違い。無断引用そのものには問題はなく、地デジカの説明文のライセンスをGFDLとしなかったことがGFDL違反となる。

GNU フリー文書利用許諾契約書 - GNU プロジェクト - フリーソフトウェア財団 (FSF)


地デジ録画機への著作権料上乗せ拒否 パナソニックなど

いいぞもっとやれw


B-CAS、地デジ用の「ミニカード」を11月導入へ

B-CASは滅びんよ。何度でも蘇るさ!」 うぜーwww


グーグル地図に家庭訪問先 うっかり公開、後絶たず


グーグル、独占禁止法に関する批判受けイメージ改善に着手

プライバシー保護に関するイメージ改善は?


盗難PCのデータ、遠隔削除 富士通とウィルコムが開発

ふむ。面白い。バッテリーが切れてたらどうするんだろうとか、ウィルコムの電波が届かない場所ではどうするんだろうとか、ちょっと思う。


1年で30万部も減った産経新聞の「非常事態」


ブラジルで干ばつ深刻、世界遺産「イグアスの滝」も水枯れの危機


「防弾ターバンを開発して」、英国のシーク教徒警官の切実な要請

ふむ。


NYに電池動力のミニカー登場、交通渋滞緩和の秘策となるか

事故ったら確実に・・・


【動画】金融危機の影響を受ける「ヤクザ」の現状とは?


【図解】「ホビット」にまつわる議論

昨日の。


ウイルスとバクテリアの中間「ミミウイルス」、3D撮影に成功

キモイw 生命の定義の境界線上にいるウイルス。面白い。


『Kindle DX』に旧メディアが期待を賭ける理由

やっぱ、高いと思われてるんだ。高いよねー。


晴れた日は、トランポリンで大空へ!

金融危機で破綻したビルを背景にトランポリン。


ハッブル望遠鏡がとらえた宇宙の美:画像ギャラリー


NASAの次世代宇宙船開発に黄信号、米大統領が見直し指示

うへ、まじで? 生きてるうちに火星に行ってみたかったけど、これで確定的に行けなくなったかな。


都心の空に鮮やかに出現した虹
雨上がりの空に浮かんだ二重の虹
都心に大きな虹 くっきり、所により二重

みーのーがーしーたー orz

5月11日からスタートする Amazon Product Advertising API (旧称 Amazon Web Services / アマゾン アソシエイト Web サービス)は、移行期間3ヶ月の後、8月15日から認証のための電子署名付きリクエストが必須となる。アマゾンアフィリエイトWebサービスを使っている人は、認証付きリクエストを発行できるように、プログラムを改修する必要がある。ここでは、PHPを使って、電子署名付きリクエストを作成・送信する方法について解説する。

(5/11 13:00 完全版をアップしました)
(5/11 22:30 ver 0.2 をアップしました。Timestampに関するバグを修正しました。必ずアップデートしてください。)
(5/12 23:00 ver 0.3 をアップしました。複数リクエスト(バッチリクエスト)の場合に、ピリオドがアンダースコアに置換される問題を修正しました。)
5/16 ver 0.4 をアップしました。連想配列の指定でエラーが出る問題を修正しました。)



0. 手っ取り早く対応したい人向け


0.1 準備

↓の「2. 準備」を参考に、「Secret Access Key」を取得して、「PECL hash」のインストールを確認してください。


0.2 ダウンロード

http://amazon.ringoon.jp/rest_test/pa_sig.txt をダウンロードして、拡張子をphpに変えてください。ライセンスは Creative Commons License クリエイティブ・コモンズ 表示 2.1 日本 です。改変・再配布・商用利用が可能です。


0.3 プログラムの改良

0.3.1 Secret Access Keyの変更
pa_sig.phpの "Your Secret Access Key" のところを、自分の「Secret Access Key」に変更してください。

0.3.2 従来のプログラムの改修
http://amazon.ringoon.jp/rest_test/pa_sig_test.txt を参考に、従来のプログラムを改修してください。

  • includeする
  • リクエストURLに add_signature($url) で署名を付加する

という2点だけです。




1. 全体的な流れ

Basic Authentication Process
(電子署名付きリクエストの作成手順)

Example REST Requests
(電子署名付きリクエストの例)

流れとしては、

  1. (従来の)リクエストを、整形する。
    • パラメータとしてTimestampが追加された(必須。Timestampから時間が経っているとexpireされる)
    • パラメータをソートする。大文字のアルファベット順→小文字のアルファベット順の順番
    • パラメータをURLエンコードする(RFC 3986)。カンマ、コロン、セミコロンを変換する。PHPなら rawurlencode() などで。
  2. 整形したリクエストを元に、署名原文を作る。
  3. 「Your Secret Access Key」を使って、SHA-256なHMAC(RFC 2104)で署名を得る。
  4. 従来のリクエストの最後に、パラメータ「Signature」として署名を追加して、リクエストを送る。




2. 準備


2.1 Secret Access Key の取得

電子署名の暗号化の鍵として、Amazon が発行する「Your Secret Access Key」を使う。「Your Secret Access Key」は、Amazon Web Servicesのホームページ(http://aws.amazon.com/)にアクセス・ログインし、「Your Account」から「Access Identifiers」を見ると書かれている。


2.2 PECL hash がインストールされているか確認

Amazon Product Advertising API では、SHA-256をハッシュ関数としたHMACを電子署名として採用している。PHPで、HMACを生成するには、 hash_hmac を使うのが簡単で良いが、サーバに PECL hash という追加モジュールがインストールされていなければならない。

以下のようなサンプルプログラムをサーバで実行してみると、確認できる。

<?php
print( hash_hmac("sha256", "hogehoge", "1234567890") );
?>

もしくは、Amazonのサンプルに沿ったテストコードを、http://amazon.ringoon.jp/rest_test/test.txtに置いたので、ダウンロードし、拡張子をphpに変えて自分のサーバにアップロードしても良い。実行結果は、http://amazon.ringoon.jp/rest_test/test.phpのようになる。なお、RinGoon POP!!はさくらインターネットのレンタルサーバを利用しているが、PECL hashがインストールされていて、何の設定もなく利用できる。



3. プログラム改修のポイント

  • リクエストURLを parse_url() で分解する
  • クエリ部分を parse_str() で分解する
    • このとき、クエリパラメータ中のピリオドがアンダースコアに変換される。複数リクエストを使っている場合は、署名原文を作るときに、変換を戻す必要がある。
  • クエリを分解した配列に、TimestampとしてGMTのタイムスタンプを加える。書式が違うとすげー勢いで怒られるので注意。
    gmdate("Y-m-d")."T".gmdate("H:i:s")."Z"
  • クエリを分解した配列を ksort() で昇順ソート
  • クエリのデータの方を、 rawurlencode でRFC 3986にエンコード。
  • クエリデータをくっつけて、署名原文を作る。 → 署名原文の作り方
  • base64_encode( hash_hmac("sha256", $str, $secret_key, "TRUE")
  • 最後に、元のURLに、署名原文として作ったURLに、
    &Signature=hogehoge
    として付加する



4. 注意点

  • webservices.amazon.co.jp は、自分の名前を xml-jp.amznxslt.com だと思っているようだ(?)。webservices.amazon.co.jp のままだと署名が違うと怒られる。DNSだと xml-jp.amznxslt.com の方が別名っぽいのに。すぐに対応されると思うが・・・
    webservices.amazon.co.jp に対して、XSLTスタイルシートを適用させる電子署名リクエストを送ると、SignatureDoesNotMatchエラーが返ってくる。XSLTを使うには xml-jp.amznxslt.com にリクエストを送ること。
  • Timestampは必須。
  • 現在時刻(GMT)から、ある程度離れた時刻をTimestampで送ると怒られる。URLそのものをキャッシュするような実装の場合は注意が必要。
  • XSLTを使っていても、電子署名付きのリクエストを受け付けている。



5. 動作サンプル





9. おまけ

「アパレル」とか「ジュエリー」とか、ItemSearch の SearchIndex がやたらと増えているので、この機会に追加しておくのも良いかもしれない。

SearchIndex-ItemSearch Parameter Combinations for JP
(日本のアマゾンのSearchIndex 一覧)










    [広告] IL MILIONE ~世界の風景100撰~ 特大サイズ壁紙集 (People to People Communications 株式会社)