HackMDの危なっかしい仕様について

HackMD」というオンラインノート共同編集サービスを使ってみて気になった点を書き留めておく。

日本語対応がいまいち

Languagesの一覧から日本語を選択できるのだが、日本語化されるのはチートシートくらいで、編集画面や設定画面はほぼ英語のままである。運営メンバーに日本語話者が居るのになぜ……。

英語は苦ではないが、ネイティブではないので、メッセージの読み違えや注意事項の見落としが発生する可能性がある。後述するように、英語の利用規約を理解し、英語でメールの読み書きができないと、アカウントの削除もできない。

また、日本の利用者が少なく、日本語の情報が少ない。そのため、HackMDの仕様についてよくわからない部分が多々ある。

余談だが、言語設定を日本語に変えると、閲覧するページすべてのHTMLのlang属性に"ja"が宣言されてしまう。そこは閲覧者依存ではなく作成者依存にするべきだろ常考。

作成したノートの公開場所が不明

ノートを書き終えたら読み書き権限を設定して「公開」(Publish)する訳だが、これがどこに公開されているのかが分からない。というのも、他のマイクロブログサービスにあるような新着記事一覧や横断検索機能が見当たらない。

ノートを「公開」する以上、他人の目に触れたり、検索エンジンにクローリングされてインデックス化されることを期待すると思うのだが、これでは共有URLの発行と変わりがない。

唯一、自分のアカウントのプロフィールページに公開したノートが表示されることは書いてあるのだが、プロフィールページのURLを知るにはノートからリンクを辿る必要があるので、鶏卵問題になる。

noteやmediumのように公開ブログとして使うには別経路での宣伝が必要になりそうだ。

ゲストで作成したノートの扱いが不明

私がHackMDに興味を持ったのは、サインインユーザでなくとも「ゲスト」ユーザとして匿名でノートを作成できる点である。イメージとしてはTelegramの簡易ブログサービス「Telegraph」に近い。

しかし、ゲストの制限については機能紹介で少し触れられているのみで、何ができるのか・できないのかについてはほとんど情報がない。そこで実際にゲストでノートを作成してみたところ、自身で作成したノートであってもオーナーになれない仕様に起因する幾つかの制約が確認できた。

ゲストで作成したノートは公開できない

ゲストはノートの「公開」ができない。ただし、共有URLの発行はできる。前述の通り、公開も共有URLの発行も違いがないため制約と言うべきか微妙なところだが、ゲストで作成したノートは読み書き権限の設定が「everyone」固定のため、誰でも編集可能なWikiのような使い方に限定されるようだ。

もし共有URLが何らかの経路で漏れた場合に、閲覧を制限する手段がないため、特定のグループでのみ共有したい秘密情報をゲストで書き込むべきではない。また、共有URLが何らかの経路で漏れた場合に、編集を制限する手段もないため、荒らしに目を付けられると為す術がない。

共有URLは比較的漏れやすいため、簡易的なセキュリティに過ぎないと心得ておく必要がある。メールやLINE,TwitterなどのメッセージでURLを共有すると、それらはセキュリティスキャナによってチェックされる。この時点で共有URLは第三者に知れていることになり、さらにそこから別の誰かに漏れない保証はない。

ゲストで作成したノートは削除できない

とは言っても、サインインしていたつもりがセッションの期限切れでゲストユーザのままノートを書き込んでいた、というのはいかにもありそうだ。しかし、ゲストはノートの「削除」ができないという問題がある。

ノートは逐一自動保存され変更履歴(Revision)が残るため、間違って秘密情報を書き込んだあとに慌てて白紙に戻しても後の祭りである。これはゲストでの編集に限らないが、ノートの変更履歴は本文と共に公開され、変更履歴を削除する方法は存在しない。

ゲストで作成したノートは永久にHackMDのサーバに残り続けるのか、それとも一定期間経過後に削除されることがあるのか、これもよく分からない。

無料プランでアップロードした画像は消せない

HackMDの無料プランには画像ストレージが割り当てられないため、ユーザーがアップロードした画像は、外部サービスのimgurに自動でアップロードされる。

画像は自動的に imgur にアップロードされるので心配する必要はありません。

imgur への画像の登録は匿名アカウントで行われ後から削除できない。したがって間違ってアップロードしても取り消せないし,ましてや公開できない画像をアップロードするのは以っての外である。ご注意を。

本来imgurではサインインしていなくともセッションが有効な内はアップロード画像の削除が可能なのだが、HackMD経由でアップロードされるとユーザからは削除できないので、imgurの削除申請フォームに頼るしかないようだ。

アカウント削除機能がない

HackMDにはアカウント削除機能が無い。海外のマイクロサービスによくある「サポートに個別に連絡してね」方式のようで、利用規約にもそのように記載されている。

Termination without Cause (Free Plan). Customer may terminate its free subscriptions or plans by providing notice to HackMD at support@hackmd.io without cause;

だが、アカウントの削除によって作成済みのノートに与える影響がよく分からない。自身がオーナーとなっているノートは削除されるのか、残されるのか。チームで共同編集していた場合は問題が複雑になる。

[2020年2月7日追記] 2020年1月2日に"support@hackmd.io"にアカウントの削除要求を送ったが、反応がないため、2020年1月11日に"hackmdio@gmail.com"にも削除要求を送ったところ、2020年1月20日に"hackmdio@gmail.com"から返信が来た。無料アカウントのためか、サポート対応はお世辞にも早いとは言えなかった。

結論

とにかくデータのコントロール権がこちらにないことが多すぎる。私はそのうち自分が漏洩事故を起こすと確信したため、継続的な使用は取り止めた。

他にもGithubとの統合(Integration)機能もあるようだが、どんな情報が意図せず公開されてしまうのか分からず怖いので試していない。

オンプレミス運用ならば上記の欠点のほとんどを克服できるのではないだろうか。