例: サーバー側は Asp.net MVC、クライアント側は KnockoutJS です。
セキュリティと標準の観点から: サーバーが編集リンクを出力し、クライアント側コードが "HasEditPermission" などの JavaScript ビューモデル プロパティに基づいてコントロールの可視性を設定することは許容されますか?
または、MVC Razor 構文は、ビューモデルに基づいてコントロールを選択的に出力する必要がありますか?
従来、これはすべてサーバー側で行われていましたが、現在ではほとんどのデータ バインディングがクライアントで行われているため、Razor と KnockoutJS に条件付きロジックを含めることで問題が混在しています。
言うまでもなく、サーバーは権限に基づいてすべてのポストバックを検証するため、権限のエスカレーションは不可能です。また、「あいまいさはセキュリティではない」という概念がここで作用することも指摘しておきます。編集リンクが存在しないからといって、攻撃者が yourwebsite/users/edit/1 を試みようとしていることが明らかではないということにはなりません。