2011年10月 のアーカイブ

エレベーターで起こりうる悲劇

2011年10月5日 水曜日

「あなたがこの世で一番おそれてることってなんですか?」

大学生のとき、ぼくはある人からこう問いかけらた。
いっとき頭が真っ白になっていろんなことが頭をよぎって、
いろんな体験や知識を思い出して、比較してって繰り返して、
しばらくしてこれで間違いないってこたえがうかびあがった。

ぼくが一番おそれてるのは、
「死ぬこと」
じゃない。

「人を再起不能にすること」

たとえば、ぼくは両目失明したとしても、人生楽しめると思っているし、そう信じてそう言い聞かせて生きているわけだけど、ぼくが誰かの両目を失明させた瞬間、そういった信念とか理論武装とかすべて無に帰す。
失明しても人生終わりじゃないといくら自分では納得していても、その理屈を他人に押し付けることは不可能で、ましてや加害者の立場として到底口に出せることでもない。
やっぱり、自分に直接ふりかかってくる不幸よりも、自分の責任で他人を不幸のどん底に突き落とすことによって反射される不幸の方が、何倍か不幸中枢を刺激するんだ。

ぼくの親戚の知り合いの話で、酔っ払って道端でふざけてて、友人が後ろからからんできたところ、たまたまフッと立てた傘が友人の眼球につき刺さりそのまま脳を貫通して殺してしまったという話。
ぼくが認識してる不幸話ではこれが一番だと思った。

過失致死とか過失傷害とかそこまで重たい話でなくとも、「悪意なくやったことが相手を傷つける」パターンって日常にあふれている。
今日ぼくはみんなに共有しておきたいことがあって、
最近ぼくはエレベーターにのると、「悪意なく人を傷つける」類の悲劇をイメージせずにはいられなくて、ひやりとするんだ。
その一例を紹介したいんだけど、とてもショッキングな内容なので、この手の話が苦手な人は読むのやめたほうがいいかもしれません。

・・・
舞台はほぼほぼ満員のエレベーター。

ぼくはエレベータの出口に一番近いところに立っている。

扉が閉まろうとしたところ、ある女の子が急いだ様子で走ってくる。

それに気づいて閉まりかけた扉をあける。

女の子はほっとした様子で、ほぼほぼ満員のエレベーターにもぐりこむ。

ここまではよくあるシチュエーションだが、ここからいつもと少し違う出来事が連続して発生する。

エレベーターのブザーが鳴る。
つまり、重量オーバーだったんだ。
せっかく間に合ってほっとしたのもつかの間、女の子はエレベーターを出ないといけなくなった。

なかなかこういう体験って恥ずかしいじゃないですか。
しかも、女の子は急いでいる様子だった。

(女の子のかわりにぼくがエレベーターを降りよう)

という考えがふと脳裏をよぎる。
とても機嫌がいいときには、他人にいいことをしてあげたい気分にもなるから、

「お先にどうぞ」と声をかけて
ぼくがエレベーターを降りる。

悲劇が起こるのは次の瞬間。

ブザーが鳴り止まない。

X = ぼくの体重
Y = 女の子の体重
Z = その他乗客の体重合計
C = エレベーターの体重制限

C > X + Z …①
(ぼくとその他の乗客の体重合計はエレベーター制限よりも小さい)

C < X + Z + Y …② (①に女の子の体重を加えるとエレベーター制限をこえる) C < Z + Y …③ (②からぼくの体重を引いてもエレベーター制限をこえる) ①,③より、 Z + Y > C > X + Z
Z + Y > X + Z
Y > X

・・・
こんな不幸ってあるでしょうか。
傷つけようと思ってやったわけじゃない。
むしろ好意でやったにもかかわらず、相手を屈辱まみれにさせることもあるんだ。

トイレ脆弱性

2011年10月1日 土曜日

ありえないトイレ

トイレットペーパー以外は詰まりの原因となります。異物を流さないでください。

おそらくトイレットペーパー以外の異物を流す輩がいるという問題がことの発端です。
おそらく、この”異物”に含まれるのは、ティッシュペーパーとかが多いのでしょうが、
その他にもバラエティあふれるものが流されることがあったはずです。

流してOKなものとそうでないものを整理すると、

  • ○ トイレットペーパー
  • × ティッシュペーパー
  • × ガムの殻
  • × レシート
  • × タバコの吸殻

ブラックリスト法だと問題に対処しきれません。
ブラックリスト法とはつまり、流してはだめなものを定義し、それがやってきたときエラーとします。
流してはいけないものはこの世に無数にあり、それらを定義しつくすことは不可能だからです。

そこで、この問題の担当者はホワイトリスト法を採用しました。
ホワイトリスト法とはつまり、流すことを許可されたものを定義し、それ以外のものがやってきたときエラーにするというものです。

foreach($objects as $key => $obj) {
    if(!preg_match('/^(トイレットペーパー)$/i', $obj)) {
    	$rownum = intval($key) + 1;
    	$msg = "{$rownum}行目:<br/>";
    	$msg .= "トイレットペーパー以外のものがながされようとしています。<br/>";
    	$msg .= "処理を停止します。";
        die($msg);
    }
}
echo '水洗開始';

トイレットペーパー以外のものをひとまとめに”異物”と定義することで、その他無数の流してはいけないものをリストアップするコストを削減することに成功しました。
しかし、ここで致命的なバグが生まれています。

トイレットペーパー以外の全てのものを流すことを禁止したため、肝心のうんこを流さないで帰るという攻撃が成立します。

このセキュリティホールはただちに報告され、修正されるものですね。
みなさんうんこが流されないままになっているトイレに気をつけてください。

修正版:

トイレットペーパーまたはうんこ以外は詰まりの原因となります。異物を流さないでください。

foreach($objects as $key => $obj) {
    if(!preg_match('/^(トイレットペーパー|うんこ)$/i', $obj)) {
    	$rownum = intval($key) + 1;
    	$msg = "{$rownum}行目:
"; $msg .= "トイレットペーパー以外のものがながされようとしています。
"; $msg .= "処理を停止します。"; die($msg); } } echo '水洗開始';