とあるお客様より、次のような依頼がありました。
「社内規定をまとめているアプリで添付ファイルのPDFを閲覧のみでダウンロードさせたくない!」とのご要望。
たしかに、閲覧表示系のプラグインはあるものの、右クリック(コンテキストメニュー)や、開発者ツールなどを無効化するツールはあまり聞いたことがないな…と思い早速調べてみることに。
kintoneの添付ファイルのダウンロードリスク
通常、kintoneでは、添付ファイルをクリックするとそのままダウンロードされることがほとんどです。
ここにダウンロード制限をかけたい場合、多くの方は閲覧表示系のプラグインを導入しているのではないでしょうか?一見するとダウンロードを防げているようにも思われます。
しかし、これだけでは不十分です。
ダウンロード手段
では、どのような手段でダウンロードできてしまうのでしょうか?
1.右クリックなどでコンテキストメニューを開き、新しいタブを開く
もちろん、ドラッグで添付ファイルを新しいタブとしてブラウザーのバーに持っていくことでもダウンロードできます。

2.開発者ツールから添付ファイルのリンクを探して保存
あえて詳細は書きませんが、エンジニアやWebアプリ開発者であれば簡単にできますよね。
この他にもダウンロードできる手段はありますが、一般的なユーザーのスキルから考慮するとこのぐらいでしょうか。
ここからわかるように、ドラッグ操作、コンテキストメニューと開発者ツールだけは、制限をかけなければなりません。
どのようにして制限をかけるか?
当然ではありますが、kintoneのJavaScript APIにはこれらを制限するものはありません。
これは、kintoneの機能ではなく、ブラウザの機能を用いてダウンロードをしているからです。
ではどのようにして制限をかければよいでしょうか?
addEventListenerを用いて制限をかける
DOM API に含まれる標準メソッドの「addEventListener」を使うという方法です。
これは、ユーザーのマウスによるクリックやキーボードからの入力といった様々なイベント処理を実行するメソッドです。
例えば、コンテキストメニューの制限をかけたい場合は、contextmenuイベントに対して制限をかけます。
document.addEventListener('contextmenu', function(e) {
e.preventDefault();
e.stopPropagation();
alert('このアプリでは右クリックが無効化されています。'); // 右クリックした時に警告を出す。
return false;
}, true);このほかにも、ドラッグ操作を防ぎたいのであれば、dragstart(ドラッグ開始イベント)に対して制限をかけたりすれば、ダウンロードを防ぐ手段となります。

まとめ
完全にダウンロードを防ぐというのはなかなかに難しいですが、一般ユーザーの知っている操作に限定するのであれば、コンテキストメニューやドラッグを制限するだけでも効果はありそうです。
エーアイティ研究所では、基本機能、プラグインはもちろんのこと、カスタマイズのご相談もお待ちしております。kintone化をあきらめていた業務などがございましたら、お気軽にお問い合わせください。









