第23章. 安全なユーザ体験
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
セキュリティで保護された Web アプリケーションのコンポーネントとして忘れられがちなのが、ユーザインタフェースで ある。UI は、エンドユーザがウェブアプリケーションと対話するための標準的な方法です。高度に特殊化されたウェブ・アプリケーションは、ユーザが CLI、REST API、あるいは XML や JSON ファイルを介して対話することを可能にするかもしれない。しかし、大多数のアプリケーションとエンドユーザは、ユーザ・インタフェースを介して対話することを好む。
ウェブ上では、UIはブラウザのコンピューティング・モデルの制限により、小さな技術セットに制約される。一般的に、これらのインタフェースはHTML、CSS、JavaScriptであるが、セキュリティやパフォーマンスの制限にもかかわらず、プラグインやアプレット(Javaなど)を利用することもある。
この章では、UIを動かす技術(JavaScript、CSS、HTMLなど)には焦点を当てない。その代わりに、これらの技術によって出力され、エンドユーザによって対話されるアプリケーションの設計、ユーザ体験、そしてユーザビリティに焦点を当てます。これ以上述べることなく、プロデューサがUIを制作するときに犯しがちなセキュリティ上の間違いをいくつか考え、そして、それらのセキュリティ・ギャップに対する潜在的な解決策を評価しよう。
情報開示と列挙
情報漏えい 、列挙の脆弱性ともに、識別機能のセットは共通しており、(多くの場合)UIに有用なデータを提供する必要性から生じている。しかし、これらの脆弱性はどちらも、スマートなユーザ体験デザインによって回避することができるか、少なくとも軽減することができる。
情報開示
WebアプリケーションのUIをデザインする際に、まず最初に考慮すべき最も重要なことは、エンドユーザにどれだけの情報を提供するつもりかということである。一見すると、これは解決しやすい問題のように思えるかもしれないが、よく考えてみると、UIの主な目的はエンドユーザに情報を提供することであることがわかるかもしれない。実際、エンドユーザにとって、インタフェースは情報を少なくするよりも多く提供した方が良い場合が多い。
この観点から、どの程度の情報をユーザに提供すべきか、また、どのような情報をエンドユーザから隠蔽すべきかを決定するという課題が残る。これは、より良い情報セキュリティと引き換えに、エンドユーザの体験が低下するというトレードオフがあり得ることを理解した上でのことである。
追加的な情報開示が、ユーザ体験を改善する意図で行われたにもかかわらず、ウェブアプリケーションにセキュリティリス クをもたらす可能性がある典型的で単純な例が、いくつかあります。あなたがセキュリティエンジニアで、何人かの有能な UXデザイナーと一緒にウェブアプリケーションに取り組んでいる場合を考えてみよう。
あなたのチームの設計者は(当然ながら)、エンドユーザに詳細なエラーメッセージを提供することによってユーザ体験を向上させ、ウェブアプリケーションのフォームがフォーム送信に失敗したときに、どのような種類の問題が発生したのかをエンドユーザが認識できるようにしたいと考えている。このようなエラーメッセージを実装する方法はたくさんある。次のような実装を考えてみよう:
-
サーバのエラーメッセージとエラーコードをユーザに返す。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access