首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安全吗?一种库中存储数据库的访问方法

问安全吗?一种库中存储数据库的访问方法
EN

Stack Overflow用户
提问于 2011-05-05 03:04:15
回答 5查看 146关注 0票数 0

首先,我有两个项目在做: ASP.NET和Silverlight都使用一个类(库类项目中的QueryServiceClass),这些类都有query方法来使用ADO.NET访问数据库,操作数据库。(打开数据库连接、添加客户、编辑、更新等)

所以我将它们存储在一个C#类库中,并与ASP.Net和Silverlight共享。ASP.NET项目和Silverlight的Web项目将引用QueryServiceClass项目。

但是如果我发布ASP.NET/Silverlight项目,QueryServiceClass项目的dll文件也应该被发布( dll文件应该位于服务器端)。

因为QueryServiceClass的方法必须是公共的,以便ASP.NET/Silverlight项目可以使用它。所以有人可能会使用dll来访问数据库?这样安全吗?

======编辑

在Silverlight的Web项目中,我使用WCF继承QueryServiceClass和一个接口来访问数据库,所以在Silverlight客户端上,它将通过WCF访问数据库。我更担心的是,有人可能会从服务器上拿到dll文件,然后交给别人。

提前谢谢。

国王

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-05-05 03:07:30

您可以将成员设为内部成员,而不是公共成员,还可以修改AssemblyInfo.cs类,并使内部结构对特定asseblies可见。

代码语言:javascript
复制
[assembly: InternalsVisibleTo("OtherLib.Domain.Stuff")]

这不会阻止别人反汇编你的DLL来获取信息,但会阻止人们在他们的代码中使用你的dll。

票数 2
EN

Stack Overflow用户

发布于 2011-05-05 03:10:09

无论是否公开,将不是安全的的。如果你的东西在没有适当访问限制的情况下,以任何方式从一台不值得信任的计算机访问数据库,你的数据库将是完全开放的。

正确的方法是在Silverlight和数据库之间放置一个web服务,并在服务中进行彻底的访问检查。

票数 1
EN

Stack Overflow用户

发布于 2011-05-05 03:12:23

也许防止任何问题的最安全的方法是不允许从公共互联网远程访问您的数据库。这通常是通过在web服务器上运行服务(该服务可以是网站),然后使用该服务连接到数据库来处理的。基本上,您应该确保不能从网络外部的计算机直接连接到数据库服务器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5888560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档