ウェブブラウザでの漫画ビューア

漫画雑誌というのは多少の赤字があるくらいで、単行本で儲けるものだと聞いたことがある。 印刷や出版のコストを抑えられるなら、つまりはウェブを使うなら無料配信にしてもコストは似たようなものなのだろう。 漫画雑誌をウェブでやることが増えているようだ。 当然、無料のものは大抵が期間限定ではあるが。

さて、期間限定とは言っても配信している期間中に手元に保存できてしまっては期間限定の意味がない。 かと言って専用ソフトウェアをインストールさせて制御するとなるとその僅かな手間がユーザを離れさせてしまう。 どうにかウェブブラウザだけで読めるようにし、なおかつ簡単には保存できないような工夫が凝らされていてなかなか面白いものである。 私がよく利用するサイトが使っている戦略がうまい具合に違うアプローチをとっているので、簡単ではあるがサイトの紹介を兼ねて解説してみようと思う。

絶版マンガ図書館

このサイトは雑誌という形態とは毛色が違うが漫画ビューアを備えているという性質を鑑みて一緒に紹介する。

しばらく前までJコミという名前で運営していた。 代表者が「ラブひな」や「魔法先生ネギま!」といった作品で知られる漫画家、赤松健であることもあって漫画好きにはそれなりに知られているかもしれない。 絶版になった漫画を著作者の許諾を得て掲載し、広告料で得た収入を作者に還元するという方針で運営している。 営利というよりは文化保護や落ち目の漫画家に対する福祉といった側面があるようだ。

絶版になっているという前提があるので多くは古めの作品だが、三十代以上の人にとっては最近の作品より読み易いものも少なからずあると思う。 漫画そのものは全て無料で読めるし、掲載期間の定めもないが、まれに復刊が決まるなどの事情でサイトから作品が削除されることもある。

さて、保存させない工夫については、画像そのものには何の制限もない。 ブラウザ上でコンテキストメニュー (右クリックしたときに出てくるやつ) を抑制はしているが、画像のある URL がわかっていれば直接アクセスしても何の問題もなく画像を入手できる。 その URL を取得する手順は以下の通りだ。

  1. サイトにログインしてクッキーを得る
  2. 得たクッキーを伴って各作品ごとのページにアクセスしてセッション番号を得る
  3. API にセッション番号をわたすと画像 URL のリストが JSON 形式で返ってくる

実際にはセッション番号はふたつから成る。 ticket と dataset だ。 それぞれの役目がよくわからないのだが、ひとつの作品を読んでいる間に ticket が変動することはなく dataset は変動するので、この組み合わせの妥当性を検証して異常なアクセスを検出しているものと思われる。 つまり、このサイトにおける保存させない工夫というのはセッションの追跡にあると考えられる。

WEBコミックアクション

これは運営会社が変わるなどといった変遷を経ているが、前身である「WEBコミックハイ!」や更にその前身である「COMIC SEED!」も含めるとウェブ漫画雑誌という形態の中では老舗と言える。

このサイトはログインも不要であり画像そのものの暗号化もない。 上述の絶版マンガ図書館と同様にコンテキストメニューの抑制をしているだけである。 画像を保存させない工夫としては以下のふたつが挙げられる。

  • JavaScript コードの難読化
  • 画像の分割

画像の URL がわからなければ保存も何もあったものではないが、その生成規則が記述されている JavaScript コードが難読化されている。 一定の規則で文字の置換えをされており、それが復号化されてから eval 関数で実行されるようになっている。 それが二段構えになっているので読み解くのは面倒だと思う。

画像の分割というのはひとつのページが複数に分解されていて、ブラウザ上で順序通りに並べられることでページを成すという仕組だ。 仮に URL スニファを用いて画像の URL がわかっても組立てる順序がわからなければ漫画として読めない。 これは時代背景を考えると並列ダウンロードで速度をかせぐ手段として実装されたのではないかとも思える。

後者の工夫は前者が突破されれば意味がないので、根本的には JavaScript コードの難読化がこのサイトにおける漫画を保存させない工夫であると言えると思う。

ニコニコ静画

ニコニコ静画についてはあらためて紹介する必要もない程度にはよく知られていると思うので紹介は省略する。

このサイトでは作品ごとにいくつかの方式がわかれている。 作品によっては全く何の工夫もなく普通にブラウザ上で右クリックして「画像を保存する」を選んで保存できうものもある。 保存させない工夫があるのはフラッシュプレイヤを用いて実装されているビューアを使うものだ。

URL スニファを使えば画像の URL を得ることは出来るのだが、それで得た画像は暗号化されている。 API を叩いて別途取得した鍵 (画像のハッシュ値を使っているようだ) を使って復号化する必要がある。 といっても暗号化方式自体は鍵と XOR をとるだけの実に単純なものだけれど。

画像データにバイナリレベルで手が加えられているという点で上のふたつとは異なる。

ComicWalker

このサイトはカドカワが提供している。 大手出版社がコンテンツを提供しているのでウェブ雑誌としては作品数がとても多いのが特徴と言えるだろう。

残念ながら私はまだこのサイトを充分に調査しきれていないのだが、画像を保存させない仕組はニコニコ静画に似ているようだ。 だが、画像の暗号化の仕組はバイナリレベルではなく画像レベルである。 画像の内容を四角のマスに区切ってまるでスライディングブロックパズルのように入れ換えている。

Document ID: d38e8cae97ff77ac70f7ae9bf6d60cf2