はなげブログ
日記
twitter落ちた記念
なかなかお目にかかれない画面なので、キャプチャしておこうと思う。
ついでにソースも
ついでにソースも
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-us">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Twitter / <%= reason.capitalize %></title>
<link href="//si0.twimg.com/sticky/error_pages/favicon.ico" rel="shortcut icon" type="image/x-icon">
<link rel="stylesheet" href="/errors/fullscreen_errors.css">
</head>
<body>
<div class="topbar js-topbar">
<div class="global-nav" data-section-term="top_nav">
<div class="global-nav-inner">
<div class="container">
<ul class="nav js-global-actions">
<li class="home">
<a href="//twitter.com">
<span><i class="nav-home-logged-out"></i></span>
</a>
</li>
</ul>
<div class="pull-right">
<ul class="nav secondary-nav">
<li><a href="//twitter.com" id="homeLink">Back home →</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="blue-sky">
<div class="body-content">
<div class="canvas">
<img class="illustration moan-cone" src="/errors/moan_cone.png">
</div>
<h1>Twitter is currently down for <%= reason %>.</h1>
<p>We expect to be back in <%= deadline %>. For more information, check out <a href="http://status.twitter.com">Twitter Status</a>. Thanks for your patience!</p>
<div class="footer">
<ul class="links">
<li class="first">© 2012 Twitter</li>
<li><a href="/about">About</a></li>
<li><a href="/help">Help</a></li>
<li><a href="http://status.twitter.com/">Status</a></li>
</ul>
</div>
</div>
</div>
<!-- BEGIN google analytics -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-30775-6");
pageTracker._setDomainName("twitter.com");
pageTracker._trackPageview('Maintenance');
</script>
<!-- END google analytics -->
</body>
</html>
投稿:2012/07/27 01:30
更新:2012/07/27 01:31
更新:2012/07/27 01:31
IT関連
SSLを使用せずに暗号化して通信するパスワード認証ページを作る
今まで、このブログの編集ページへのログインは、一切の暗号化をせずに通信していたんだが、
ためしにパスワードを暗号化させて送ってみたくなってやってみた。
PHPとJavascriptでチャレンジ・レスポンス方式のワンタイムパスワード認証をしてみた。
暗号化はSHA256を使用。
サンプルページ
http://hanagebigwave.6.ql.bz/chaptest/admin.php
にわか知識な私が作ったので、きっと問題を抱えているだろうな。
そういった意味でソースは公開しない。
(いや、公開しておかしい点を指摘してもらうのもいいかもしれない)
具体的には下の図のような処理をしている。
とりあえず、現時点でわかっている、今回の処置をしても改善されない脆弱性を挙げていく。
ページが読み込まれるたびにsession_regenerate_idでセッションIDを変更するようにしているが、ユーザー がページを閉じた後は(ユーザーがログアウトをしてくれない限り)セッションIDは変わらないから最後のセッションIDを盗聴されていたとしたらセッションハイジャックが可能だろう。
ログインしたときのUAをセッションに保持させて、それと一致するかチェックする手法を併用してみたが、ターゲットとなるユーザーのUAを、クラッカーが知ることができれば余裕で通過できちゃうはず。
ブルートフォースアタック(総当り攻撃)されても問題ないような複雑である程度長いパスワードを用意しなければならない。
以上の点が、パスワードを暗号化しないで送信した場合と同様、改善されない問題点である。
今回の修正で改善されるのはせいぜい、
・パケット盗聴をされてもパスワードがばれない
・ユーザーの送信内容を傍受され同一の送信内容を盗聴者がサーバに送信したとしてもログインできない
という点だけであろう。
2012/07/24 追記
入力されたパスワードを暗号化した後削除してからフォームが送信される。
したがって、ブラウザにパスワードを保存させること(オートコンプリート)ができない。
パスワードをブラウザに記憶させたい派のユーザーからすれば不便である。なんとかしたい。
(ユーザーというのは自分しかいないのだが・・・)
ためしにパスワードを暗号化させて送ってみたくなってやってみた。
PHPとJavascriptでチャレンジ・レスポンス方式のワンタイムパスワード認証をしてみた。
暗号化はSHA256を使用。
サンプルページ
http://hanagebigwave.6.ql.bz/chaptest/admin.php
にわか知識な私が作ったので、きっと問題を抱えているだろうな。
そういった意味でソースは公開しない。
(いや、公開しておかしい点を指摘してもらうのもいいかもしれない)
具体的には下の図のような処理をしている。
とりあえず、現時点でわかっている、今回の処置をしても改善されない脆弱性を挙げていく。
1. セッションハイジャック
ログインしていることをセッションが保持することになるが、(セッションIDをセッションCookieに記録させる際に)セッションIDが平文でユーザーに送られてしまうからパケット盗聴によるセッションハイジャックが可能という点は、暗号化しないページと変わらず。ページが読み込まれるたびにsession_regenerate_idでセッションIDを変更するようにしているが、ユーザー がページを閉じた後は(ユーザーがログアウトをしてくれない限り)セッションIDは変わらないから最後のセッションIDを盗聴されていたとしたらセッションハイジャックが可能だろう。
ログインしたときのUAをセッションに保持させて、それと一致するかチェックする手法を併用してみたが、ターゲットとなるユーザーのUAを、クラッカーが知ることができれば余裕で通過できちゃうはず。
2. パケット改竄によるhtml書き換え
さらに、パケット改竄によりログイン画面のhtmlが書き換えられた場合には、平文のパスワードを送信させることが可能になってしまう。3. ブルートフォースアタック
チャレンジコードとレスポンスコードが両方とも盗聴された場合を考慮して、ブルートフォースアタック(総当り攻撃)されても問題ないような複雑である程度長いパスワードを用意しなければならない。
以上の点が、パスワードを暗号化しないで送信した場合と同様、改善されない問題点である。
今回の修正で改善されるのはせいぜい、
・パケット盗聴をされてもパスワードがばれない
・ユーザーの送信内容を傍受され同一の送信内容を盗聴者がサーバに送信したとしてもログインできない
という点だけであろう。
2012/07/24 追記
入力されたパスワードを暗号化した後削除してからフォームが送信される。
したがって、ブラウザにパスワードを保存させること(オートコンプリート)ができない。
パスワードをブラウザに記憶させたい派のユーザーからすれば不便である。なんとかしたい。
(ユーザーというのは自分しかいないのだが・・・)
投稿:2012/07/23 04:50
更新:2012/07/31 20:38
更新:2012/07/31 20:38
コメント(0)
日記
Officeとacrobatを買う
「Microsoft Office 2010 Professional アカデミック版」と
「アドビ Acrobat X Pro 学生・教職員個人版 Windows版」
を買うことにしたので、テキトーにネットショップの価格を調べてみた。
結果は以下の通り。
まずはoffice
Microsoft Office 2010 Professional アカデミック版(2012/07/06現在)
*実質価格 = 表示価格 + 送料 - ポイント
ポイントを考慮した場合、ヨドバシカメラ、ビックカメラ、ソフマップが同率で1位。
ポイントを考慮しない場合、amazon、ECカレントが1位。
続いてacrobat。
アドビ Acrobat X Pro 学生・教職員個人版 Windows版(2012/07/06現在)
*実質価格 = 表示価格 + 送料 - ポイント
ポイントを考慮した場合、ヤマダ電機が1位。
ポイントを考慮しない場合、e-TREND、amazonがほぼ同率で1位。
日本の企業、意外と健闘してるじゃないか。
せっかくだからヨドバシ.comで買ってみる。ポイントカードのポイントと、ネットショップのポイントを統合するのが面倒くさそうだけど(店頭に行ってアクセスキーを発行してもらわないといけない)。
「アドビ Acrobat X Pro 学生・教職員個人版 Windows版」
を買うことにしたので、テキトーにネットショップの価格を調べてみた。
結果は以下の通り。
まずはoffice
Microsoft Office 2010 Professional アカデミック版(2012/07/06現在)
表示価格 | 送料 | ポイント | 実質価格* | |
---|---|---|---|---|
ヨドバシ.com | \24,400 | \0 | \2,440 | \21,960 |
ビックカメラ.com | \24,400 | \0 | \2,440 | \21,960 |
ソフマップ.com | \24,400 | \0 | \2,440 | \21,960 |
ECカレント | \22,180 | \0 | \33 | \22,147 |
amazon.co.jp | \22,180 | \0 | \0 | \22,180 |
ヤマダ電機WEB.COM | \25,500 | \0 | \2,805 | \22,695 |
e-TREND | \23,100 | \0 | \0 | \23,100 |
Joshin web | \24,400 | \0 | \244 | \24,156 |
EDION.com | \25,800 | \0 | \0 | \25,800 |
いーでじ | \26,800 | \0 | \268 | \26,532 |
ムラウチドットコム | \26,980 | \0 | \0 | \26,980 |
ケーズデンキ オンラインショップ | \27,800 | \0 | \0 | \27,800 |
コジマネット | なし | |||
カメラのキタムラネットショップ | なし |
ポイントを考慮した場合、ヨドバシカメラ、ビックカメラ、ソフマップが同率で1位。
ポイントを考慮しない場合、amazon、ECカレントが1位。
続いてacrobat。
アドビ Acrobat X Pro 学生・教職員個人版 Windows版(2012/07/06現在)
表示価格 | 送料 | ポイント | 実質価格* | |
---|---|---|---|---|
ヤマダ電機WEB.COM | \18,800 | \0 | \2,068 | \16,732 |
ヨドバシ.com | \19,400 | \0 | \1,940 | \17,460 |
ビックカメラ.com | \19,400 | \0 | \1,940 | \17,460 |
ソフマップ.com | \19,400 | \0 | \1,940 | \17,460 |
e-TREND | \17,634 | \0 | \0 | \17,634 |
amazon.co.jp | \17,635 | \0 | \0 | \17,635 |
ECカレント | \18,492 | \0 | \9 | \18,483 |
いーでじ | \19,420 | \0 | \194 | \19,226 |
Joshin web | \19,500 | \0 | \195 | \19,305 |
ケーズデンキ オンラインショップ | \19,400 | \0 | \0 | \19,400 |
EDION.com | \19,530 | \0 | \0 | \19,530 |
ムラウチドットコム | なし | |||
コジマネット | なし | |||
カメラのキタムラネットショップ | なし |
ポイントを考慮した場合、ヤマダ電機が1位。
ポイントを考慮しない場合、e-TREND、amazonがほぼ同率で1位。
日本の企業、意外と健闘してるじゃないか。
せっかくだからヨドバシ.comで買ってみる。ポイントカードのポイントと、ネットショップのポイントを統合するのが面倒くさそうだけど(店頭に行ってアクセスキーを発行してもらわないといけない)。
投稿:2012/07/06 18:49
更新:2012/07/06 19:27
更新:2012/07/06 19:27
コメント(0)
ゲーム
悪魔城ドラキュラX月下の夜想曲のレアリングについて
コナミの名作 「悪魔城ドラキュラX 月下の夜想曲」 で気になることがあったので調べてみた。
このゲームにはモンスターを倒したときに、レアアイテムをドロップする確率を上げる効果がある「レアリング」というアクセサリーが存在する。
レアリングはゲーム中には最大2つゲットできるのだが、
1つ装備したときと2つ装備したときで、
レアアイテムドロップ率に違いがあるのか不明だったので、調べてみた。
方法は、
レアリングを1つ装備する条件(レアリング1個 条件)と、
レアリングを2つ装備する条件(レアリング2個 条件)、
それぞれでコウモリを大量虐殺してみるというもの。
とりあえず4800匹ずつ、合計9600匹倒してみた。
レアリング1個: 86 個 ( 1.79% )
レアリング2個: 103 個 ( 2.15% )
モンスターはレアアイテムをよく落としてくれる!
以下、Rでχ2検定を行った結果
詳細情報を話すとこんな感じ
・LCK99プレイ(ドロップ数が少なすぎるとサンプル数が大量に必要になるため)
・場所は逆さ城の空中墓地のコウモリがいっぱいいるフロア
・セガサターン版で検証
・アイテムのドロップ数(ドロップ率)の全データ(↓)
ハートとドルも含めたなんらかのアイテムをドロップする確率は同じ(1106個 vs 1109個)。
レアリングを多く装備したことによる効果は、
ドロップする確率ではなく、ドロップする内容に対するもののようだ。
予想としては、ドロップする物のうち通常アイテムとレアアイテムの割合が上がるという効果。
ということは、もし(低レベル縛りなどで)LCKが極端に低い状態で狩りをするとしたら、
レアリングよりラピスラズリの方が効率がいいこともありうるかもしれない。
LCKが極端に低いと、ドロップ自体がほとんど生じないだろうから。
まあでも通常は断然レアリングの方が効率的だとは思うが。
このゲームにはモンスターを倒したときに、レアアイテムをドロップする確率を上げる効果がある「レアリング」というアクセサリーが存在する。
レアリングはゲーム中には最大2つゲットできるのだが、
1つ装備したときと2つ装備したときで、
レアアイテムドロップ率に違いがあるのか不明だったので、調べてみた。
方法は、
レアリングを1つ装備する条件(レアリング1個 条件)と、
レアリングを2つ装備する条件(レアリング2個 条件)、
それぞれでコウモリを大量虐殺してみるというもの。
とりあえず4800匹ずつ、合計9600匹倒してみた。
結果
レアアイテムのドロップ数(ドロップ率)レアリング1個: 86 個 ( 1.79% )
レアリング2個: 103 個 ( 2.15% )
結論
レアリングは1個だけ装備するより、2個装備した方が、モンスターはレアアイテムをよく落としてくれる!
余談と詳細
ただし、統計的検定(χ2分析)をしたところ、意味のある差とは認められなかった。おそらくサンプル数が足りてないからだとは思うけど。以下、Rでχ2検定を行った結果
> x<-matrix(c(86,4714,103,4697), ncol=2, byrow=T)
> x
[,1] [,2]
[1,] 86 4714
[2,] 103 4697
> chisq.test(x)
Pearson's Chi-squared test with Yates' continuity
correction
data: x
X-squared = 1.3817, df = 1, p-value = 0.2398
ちなみに、効果量Cramér's V は0.012 だった。詳細情報を話すとこんな感じ
・LCK99プレイ(ドロップ数が少なすぎるとサンプル数が大量に必要になるため)
・場所は逆さ城の空中墓地のコウモリがいっぱいいるフロア
・セガサターン版で検証
・アイテムのドロップ数(ドロップ率)の全データ(↓)
通常アイテム | レアアイテム | 小ハート | 大ハート | $2000 | $1000 | $400 | $250 | $100 | $50 | $25 | $1 | 合計 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1個装備 |
225 (4.69%) |
86 (1.79%) |
350 (7.29%) |
51 (1.06%) |
0 (0%) |
0 (0%) |
0 (0%) |
0 (0%) |
50 (1.04%) |
127 (2.65%) |
164 (3.42%) |
56 (1.17%) |
1109 (23.0%) |
2個装備 |
323 (6.73%) |
103 (2.15%) |
278 (5.79%) |
45 (0.94%) |
0 (0%) |
0 (0%) |
0 (0%) |
13 (0.27%) |
54 (1.13%) |
89 (1.85%) |
141 (2.94%) |
60 (1.25%) |
1106 (23.1%) |
レアリングを多く装備したことによる効果は、
ドロップする確率ではなく、ドロップする内容に対するもののようだ。
予想としては、ドロップする物のうち通常アイテムとレアアイテムの割合が上がるという効果。
ということは、もし(低レベル縛りなどで)LCKが極端に低い状態で狩りをするとしたら、
レアリングよりラピスラズリの方が効率がいいこともありうるかもしれない。
LCKが極端に低いと、ドロップ自体がほとんど生じないだろうから。
まあでも通常は断然レアリングの方が効率的だとは思うが。
投稿:2012/06/28 14:57
更新:2012/07/06 18:58
更新:2012/07/06 18:58
コメント(2)
1
削除されました
2012-08-07 14:24:07
削除されました
2
はなげ
2012-09-19 12:33:49
>>1
(記事に無関係の)広告っぽかったんで削除しました。
(記事に無関係の)広告っぽかったんで削除しました。
IT関連
ブログのRSSを生成させる
このブログのRSSをPHPで生成させて、
RSSリーダーとかで扱えるブログにしてみたい。
RSSに関しては、にわか知識すら無いので、
もしかしたら挫折するかもしれない。
とりあえずXHTMLにして(今はHTML 4.01)、
ブログを更新するときにrdfファイルを1つ生成(編集)されるようにすればいいのかな?
これから作りにあたって参考になりそうなページをリストしておく。
RSSのフォーマット・仕様・構造 - RSS1.0、RSS2.0、Content-Type
http://memorva.jp/memo/api/rss.php
また無駄に ニコ生 で作業を実況するかもしれない。
2012/06/23 追記
できた。たぶん。
http://hanagebigwave.6.ql.bz/index.rdf
(Google リーダーに登録してみた様子)
RSSリーダーとかで扱えるブログにしてみたい。
RSSに関しては、にわか知識すら無いので、
もしかしたら挫折するかもしれない。
とりあえずXHTMLにして(今はHTML 4.01)、
ブログを更新するときにrdfファイルを1つ生成(編集)されるようにすればいいのかな?
これから作りにあたって参考になりそうなページをリストしておく。
RSSのフォーマット・仕様・構造 - RSS1.0、RSS2.0、Content-Type
http://memorva.jp/memo/api/rss.php
また無駄に ニコ生 で作業を実況するかもしれない。
2012/06/23 追記
できた。たぶん。
http://hanagebigwave.6.ql.bz/index.rdf
(Google リーダーに登録してみた様子)
投稿:2012/06/22 17:48
更新:2012/06/23 04:36
更新:2012/06/23 04:36
コメント(0)
コメント(3)
テストありがとうございます!!
htmlエスケープ(htmlspecialcharsを使っています)、
SQLエスケープ(mysql_real_escape_stringでやってみました)、
ともに施していますので、
おかしなことにはなりませんでしたよね!
テストと思ったけど、宣伝か荒らしっぽかったので削除しました!
イエーイ!!