基于一列的权限 - 安全吗?

时间:2009-10-17 23:08:52

标签: asp.net sql linq security

我正在开发我的网站的早期版本,在我创建生产版本之前,我希望人们就我是否以正确的方式处理事情发表意见。主要目标是允许用户共享播放列表。我有User表(ASP.NET成员资格),播放列表表和权限表。我希望用户创建播放列表并为给定用户授予/拒绝访问权限。我的方法是让权限表包含一个“pStatus”列,其中0 / null = deny,1 = read。 当用户请求访问播放列表的权限时,创建者选择pStatus枚举。然后相应地更改该列以供收件人使用。访问收件人的配置文件页面时,将对列进行扫描以检查收件人有权访问的所有播放列表,并显示相关的播放列表。 这是一种有效而安全的做事方式吗?或者依靠一栏还不够?

(nb - 可以认为播放列表类似于Facebook群组)

感谢您的任何建议

2 个答案:

答案 0 :(得分:1)

因此权限具有用户和播放列表的外键。第三列是否有任何理由指定权限级别?它听起来应该是:如果Permission中存在一行,则允许用户访问播放列表。

否则,这对我来说听起来不错。

答案 1 :(得分:1)

我会在nm关系表中使用某种位掩码我猜是在User和PlayList之间(即一个名为UserPlaylist的表,因为1个用户可以访问多个1个播放列表,反之亦然1个播放列表可以是由超过1个用户访问)。

如果您预先定义所需的权限级别(即0 =无访问权限,1 =读取,2 =写入等),则只需向UserPlayList表添加一列,即表示访问级别。

因此,UserPlaylist表将具有2个外键列,其组合应该是唯一的(即将主键定义为2个外键列),以及以列/形式保存访问级别的列整数。