見出し画像

なぜフィルタリングをセキュリティ目的で使ってはいけないのか!?【ノーコード・ツールGlide】

ログインしたユーザーに応じて、リスト表示されるアイテムを切り替えたい。よくあるニーズです。

例えば、下の画像を見てましょう。どうやらログインユーザーはテニス部に属しているようで、テニス部員が発信したお知らせだけが表示されています。

一方、別の方がログインして同じタブを開くと次のように表示されました。うーん、この方はサッカー部に属しているようですね。

「テニス部お知らせ一覧」も「サッカー部お知らせ一覧」も参照先のテーブルは共通です。さて、これをどう実現しますか🤔??

はい、今日はリストのフィルタイングとセキュリティの話をしましょうか!安全なアプリを作りたいなら、必ず知りたいこを説明しますよ~

Row Ownersでフィルタリング!?

「それは知っていますよ~!インラインリスト・コンポーネントのプロパティでフィルタリングするんでしょ~😁」

まあ、そうですね。それでもできそうですね。。。でも、今回は少し違います。結論からいいましょう!Row Owners(と役割設定)を使っています。下の画像のとおりです。ね!

Row Owners(と役割設定)を使ってグループ毎のフィルタリングすることは、アプリをPrivate Appにアップグレードしないとできません(無料でも、メールアドレス列にRow Ownersを設定して、ログインユーザーに応じた表示はできます。念のため)。

「じゃあ、フィルタリングでいいでしょ🙄!?」

う、、、でも、そういう場合もあるし、そうでない場合もあります。そうでない場合というのは、個人情報など秘匿性が高い情報を扱う、ようは、「見てよい人以外の人に見られては絶対に困る情報」を扱う場合です。(部活動のお知らせが、秘匿性が高い情報かは、さておいて、、、😅)

フィルタリングでもそれはできますよねえ。。。。でも、そうならないのが難しいところです。でもなんで?

アプリから情報は引き出せる

Glide側は、口を酸っぱくしていいます。

「セキュリティ目的でアプリのフィルタリング機能を使わないでください。」(出典は、Glideの公式ページです。)

どういうことでしょう。実は、フィルタリング機能を使っても、ユーザーには、本人が見てよいデータだけが表示されます。

しかし、詳しい人(私は、それに属しませんよ~💦)がツールを使うと、見せていないはずのでデータが引き出せてしまうのです(って、Glide ExpertのRobert PetittoがYouTube動画で言ってました😅)。

それは、まずい。よく企業がサイトから情報漏洩させてしまった、というニュースを聞きますが、もしかするとその一部は、同じようなことが原因かもしれませんね。

ようは、「表側から見えない。でも、裏側から見えている」という状態ですね。

これを防ぐために、Row Ownersの設定が必要です。でも、根本的な違いはなんでしょうか?

それは、データ側でフィルタリングしているということです。そもそも、アプリから、データ側でフィルタリングされた情報を引き出せないんですね。

ということで、例によって繰り返しになりますが、アプリ側のフィルタリングを安全機能として使うのはやめましょう、というお話でした~。

本当はRow Ownersの使い方の話をしたかったな~。後日に譲ります。

では、ビーダゼーン!

※私のやる気アップとブログの品質向上につながりますので、記事が気に入られた方は、「ポチっ」と好きボタンを押してくださったり、フォローいただけますと幸いです🙇。







この記事が気に入ったらサポートをしてみませんか?