【发布时间】:2011-10-26 22:45:19
【问题描述】:
简单而做作的例子:
C# 桌面应用程序与 SQL Server 数据库对话。所有订单都存在于 Orders 表中。
应用程序查看、创建和修改订单。在此示例中,用户只能修改自己的订单。
关注点:
如果使用专用 sql 凭据,则存储连接字符串。 即使使用了用户凭据,也可以通过直接通过 Excel 或 Access 连接来绕过应用程序安全性。
解决方案:
仅通过 Web 服务/中间件提供对 SQL 的访问。很好,但在这种情况下不一定可行。
在某处的应用程序中加密连接字符串。不是非常安全,通过默默无闻的安全。
通过授予对特定存储过程、视图等的访问权限而不是对实际表的访问权限来保护数据库。 SP 和视图考虑了用户的权限/凭证。相当可怕。好的,简单的例子(选择 where user ,一旦你在不同的组中介绍用户,经理关系等就变得复杂了。
替代方案:
你会如何处理这个问题?
谢谢
【问题讨论】:
-
记得清理您的数据输入:xkcd.com/327
标签: c# sql-server security