ホワイトリスト方式とブラックリスト方式

こんにちは!kossyです!






さて、今回はホワイトリスト方式とブラックリスト方式という
聞き慣れない言葉にであってしまったので、勉強がてらブログに残してみたいと思います。



ホワイトリスト方式


ホワイトリスト方式とは、電子メールやWebサイトのフィルタリングを実施する方法の一つ。
安全が確認されている対象のリストを作り、それ以外を排除する方式を取る。
危険な対象をほぼ完全に遮断できる反面、リストの中身が恣意的で、
安全な対象の一部に限られてしまい、利用者の利便性を失うという欠点を持っている。

出典(一部抜粋):用語集 | KDDI株式会社

調べたら上記の解説が出てきたのですが、
アプリ開発においては、許可したいものをリスト化したもの、という認識でよさそう。
Railsでの開発に応用すると、ストロングパラメータがホワイトリスト方式に該当するんですかね。
許可したいパラメータを記載するわけなので。





ブラックリスト方式とは


ブラックリスト方式とは、電子メールやウェブサイトのフィルタリングを実施する方式のこと。
スパムメールを大量に送信した者や有害ウェブサイトのブラックリストを作成し、
リストアップされたアドレスを通信事業者がブロックする。
有害なWebサイトや犯罪につながる恐れのあるWebサイトから身を守るために、
フィルタリングの技術が必要とされている。


出典(一部抜粋): 用語集 | KDDI株式会社



書いていてもっとわかりやすい例を見つけました笑

Railsに置き換えると、onlyオプションとexceptオプションが
ホワイトリスト方式とブラックリスト方式に該当しますね。

例えばRailsでの開発においてresourcesを使ったルーティング生成の際に、
only: [:index, :show]と記述することがあると思うのですが、
これは本来resourcesで生成される7つのアクションのうち、
indexとshowの2つだけ生成することを許可するよ、それ以外は許可しないよ、という意味になるので、
ホワイトリスト方式、としていいのではないでしょうか。

except: [:index]とすると、
indexは許可しないけど、それ以外は許可するよ、といった
意味になるため、ブラックリスト方式としていいのではないでしょうか。





参考にさせていただいた記事
https://wa3.i-3-i.info/word15665.html
用語集 | KDDI株式会社