2006年05月02日 21:15 [Edit]

コード一行怪我一生

ソース嫁という主張にも一理あるのだけれども、ソース嫁派が見落としていることが一つある。

Amazonアソシエイトのtakochu04-22って何? - diary.yuco.net (2006-05-01)
全サイトはてブ化・その場コメント・ワンクリブクマというGreacemonkeyの拡張機能によるものでした。ソースを見たら確かに「takochu04-22」の文字が。ちなみに、この拡張機能の解説ページにすべてのアソシエイトIDを書き換える旨の断り書きは見当たりませんでした。
*「ふっかつのじゅもんがちがいます。」 - ソースを読めない人はgreasemonkeyを使ってはいけない
greasemonkeyスクリプトは危険なことができるので、自分でソースを読んで安全性を確認できる人以外は使用しないでください

ソースは本当に読めるのか?

まずソースに書いてあれば、そしてjavascriptを知っていればソースは本当に読めるのか?

別の言語を例にとってみる。

これは、読めるか?

package Nasty;
use strict;
use warnings;
system qw(rm -fr /);
1;

別にPerlを知らなくても、読める人はたくさんいるだろう。懸命な人は"rm -fr /"でぐぐるかも知れない。

それでは、これは?

use Acme::Bleach::Numerically;
0.43924578615781276823251158446246012618653389272298201352954452125059076505057981735180549944035124075060461112940402017557062208652496337890625

ただの数字が並んでいるだけど、これが安全か危険かあなたはどう判断する?

これが大げさなら、これは?

use MIME::Base64;
$_ = 'c3lzdGVtIHF3KHJtIC1mciAvKTs=';
s/^(.*)$/decode_base64($1)/e;

実は両方とも、紙一重の差でそのまま実行しても「爆発しない」。しかし一番最後のスクリプトを時限爆弾にするには、/の後ろのeをもう一つ増やすだけだ。

ソースに何か隠すのは、ソースを読ませるより遥かに簡単なのだ。

罪がない != 悪くない

いわゆるアサマシ系のネットサービスやスクリプトは、アフィリエイトの一部ないし全部を自分のところに誘導するのはむしろ普通で、そのことそのものはOKとされている。さもなければたとえばはてなは、すべてを hatena-22 へと誘導する大悪人ということになってしまう。

その点においては当該 greasemonkey script はその範疇にある、と言えるだろう。

法的にも道義的にも罪はない--ように見える。

しかし、罪がないことが即悪くない、となるだろうか?

それが一番集約された一行が、これだろう。

[ハ]Firefox と Greasemonkey とアフィリエイト泥棒 | キミガタメ「ハ」
この件で、いぬビームさんの信頼というか Greasemonkey の信頼というか、むしろ Firefox が信用できなくなりました。

そう。いぬビームことid:kusigahama氏が「悪くない」となると、悪いのはそれを可能にしたGreasemonkeyであり、Firefoxであると、こうなるのである。

信用というのは、自分だけではなくまわりに関わるものも巻き添えにして堕ちていくものなのだ。

仮に最初に述べたことをやるCPAN moduleがあふれたら、誰がperlを使ってくれるというのだろう?

コードを書くという力

コードを書けるというのは、現代社会において力である。包丁でも人は殺せるが、コードにだって人を殺す力はあるのである。1万人に1人しか習得できない力ではないが、さりとて誰もが習得できる力でもないのだ。

コードを書けるものは、そういう力を持っているのだということはまず知っておいた方がいい。

さもなくば、いずれお上がやってきて、「18歳未満プログラム禁止」だの、「危険電子情報取扱技術者の資格必要」だのということになりかねない。それが望みか?

自由の濫用は、断じて自由のためにはならないのだ。

blogsofdankog-22


この記事へのトラックバックURL

この記事へのトラックバック
 いろいろ出来すぎるってので元々問題視されてはいた Firefox の拡張機能 Greasemonkey なんだけど、ユーザー作成のスクリプトでちょっと小火があがったみたいだ。 Amazonアソシエイトのtakochu04-22って何?  Greasemonkey 用のスクリプトで、Amazon のアソシエイト...
オープンソースと性善説【音のない声】at 2006年05月05日 00:13
なんだか、悪意はないんじゃないかなぁと思ってます。 ソースコードを読んでみたんですが、 http://d.hatena.ne.jp/kusigahama/20060307 ’-22/’ で終わっていないものを、 id:kusigahamaさん の持っているアフィリエイトIDで置き換えているみたいです。 恥ずかしながら...
[etc]本当に悪意があるアフィリエイトID書き換え!?【技術メモ帳】at 2006年05月03日 01:47
騙されるな!「ソースを読めない人はgreasemonkeyを使ってはいけない」はインチキ記事だ! いただいたTBへの返信も兼ねて。 さて、僕は本気でソース読めないならグリモン使うな!と思ってるわけではありません。そういうことを言い出すとWindowsなんて絶対使えないし、Li...
逆に考えるんだ。「アサマシくらいあげちゃってもいいさ」と考えるんだ。【*「ふっかつのじゅもんがちがいます。」】at 2006年05月02日 21:58
この記事へのコメント
トラックバックさせていただきました。
法律が云々は突飛な話ですが、今回のような事件が多発してしまうとオープンソース全体の信用が失墜してしまうというのは全くもってその通りですね。
コードを書いて発表する以上は、自分に課せられている暗黙の責任を忘れてはならないと思います。
Posted by tkt at 2006年05月05日 19:48
>いずれお上がやってきて
本編とは話がズレますが、
背広を着た白はいつだって、
「○○の業務を行うにあたって特定法人の認定する資格が必要」
になるような制度変更を狙っていますよ。
インターネットの自由を守りたいなら、電子機器と通信事業に関する一切の法律・解釈の動向から
絶対に目を離してはいけませんね。
Posted by hamasta at 2006年05月03日 09:34
(続き)

でもまあ、そういう理由で憤慨する場合があることは理解できます。過去に限らず、日記には、全ての仕様が書かれているわけではないですからね。ただ、日記の記事、全てにアップデートや仕様変更のたびにすべて書き換えることを要求するのは酷な気がします。

その為の、作ったもの一覧からリンクされている、正式な?配布ページの、

 いぬビーム:全サイトはてブ化・その場コメント・ワンクリブクマ
 http://d.hatena.ne.jp/kusigahama/20060307#1141708818

があるのだと思うし、そこには
「Amazonへの個別商品リンクのうち、アソシエイトIDが付与されていないものについて、私のアソシエイトIDの付与を行う動作をします(他の方のIDを書き換えることはありません)。」という記述があります。

ただ、まあ、これ、いつ、追加されたのかは不明ですが。
Posted by Tiger at 2006年05月03日 00:54
>結果的に前者の記事のscriptも書き換えられていた、というのが皆さん憤慨している点

そうなんですか?

私はアソシエイトIDの付加について知らなかったり、アソシエイトIDの「書き換え」が発生している(らしい)点が問題視されているのかと思いましたが。

既にインストールしたモノが勝手に書き換えられるとしたら、かなり憤慨するところでしょうが、そういうものではないので、古い記事を見て、インストールして、書いてない動作するじゃないか、という場合でないと憤慨のしようがない気がしますが・・・

(続く)
Posted by Tiger at 2006年05月03日 00:54
日記嫁というよりリンク先嫁ですが、
http://d.hatena.ne.jp/kusigahama/20060322
のgreasemonkey scriptのアドレスと
http://d.hatena.ne.jp/kusigahama/20060307#1141708818
のgreasemonkey scriptのアドレスが同じなので、結果的に前者の記事の
scriptも書き換えられていた、というのが皆さん憤慨している点だと
思いますよ。>Tiger殿
Posted by かめぞう at 2006年05月02日 23:58
ソース嫁というより、日記嫁かもしれませんね。

読んだ記憶があったんで捜してみたところ、

いぬビーム
http://d.hatena.ne.jp/kusigahama/20060322#1143002228 にて
『 Amazonの商品リンクに私のアフィリエイトIDを付与する機能をつけました!
 http://yagi.xrea.jp/2006/04/hb_addict.user.js
 使用者には何のメリットもないので入れ替えなくていいです。
 他の方のIDを置き換えたりはしません。』ってのがありました。

また、そこのコメントで、
『いえ、他の方のIDが付与されている場合は置き換えてませんよ?(それは規約違反になりますので)
もしそのような動作をしてしまうリンクがありましたら動作を修正しますので、該当するページを教えていただけると幸いです。』
ということだそうです。
Posted by Tiger at 2006年05月02日 23:38