【问题标题】:Security Behind Linq to SQLLinq to SQL 背后的安全性
【发布时间】:2011-12-16 14:57:30
【问题描述】:

我是 Visual C# 和 .NET 框架的新手,但在 LAMP 开发方面有相当多的经验。我想知道 linq to sql 通信的安全性。

通常以 LAMP 方式执行此操作时,会部分使用诸如使用服务层之类的措施来提高系统的安全性,而不是通过 http 公开数据库身份验证详细信息。

浏览了一些推荐(微软)linq->sql 教程后,客户端应用程序(通过 Web 应用程序)似乎直接与数据库交互。这似乎不是很有效或安全....

我想知道以下几点:

1) .NET 中存在哪些措施来实现客户端和服务器端应用程序之间的安全通信?

2) 是否有任何预安装的服务层框架可以在 .NET 中使用?

3) 是否可以手动使用 http 请求方法 (POST/GET) 将数据从 c# Web 应用程序发送到远程 SQL Server 数据库?

【问题讨论】:

  • LINQ-to-SQL 是一个完全服务器端的框架。您是如何确定客户端正在与数据库交互的?
  • 我想指出微软几年前放弃了对 Linq-to-Sql 的支持。该技术不会有任何更新。
  • @Inuyasha - 它被其他东西取代了吗?
  • @lnuyasha 来源?我不断听到和阅读,但是人们不断链接到 MSDN 博客文章,说他们将继续发展它......

标签: c# asp.net visual-studio visual-studio-2010


【解决方案1】:

在 ASP.NET 应用程序中,您编写的所有 C# 代码都在服务器(服务器端)上执行,执行后页面被发送到客户端(浏览器)。客户端代码是指javascript。数据库详细信息不会发送到客户端。

【讨论】:

    【解决方案2】:

    您可以将 LINQ 系统称为与数据库相关的“客户端”,但这就像将 LAMP 应用程序的 PHP 部分称为与数据库相关的“客户端”一样——完全正确,但略有不同误导。就整个客户端(浏览器)而言,LINQ 不会像 LAMP 那样公开身份验证详细信息。

    1. 您在这里指的是哪个“客户”。就浏览器而言,主要机制是浏览器不知道您到底在做什么。它甚至不会知道它是 LINQ,除非您是那种喜欢在您的网页上放置“Powered by...”图像的人。就数据库的客户端而言,有几种身份验证模型(用户/密码、NTLM、Kerberos 和我认为还有更多),您可以在 Web 服务器和数据库服务器之间的连接上使用 SSL 和 IPSec。

    2. 你的意思是像 MVC 和 WCF?

    3. 是的,自 SQL2000 以来就有,请参阅http://msdn.microsoft.com/en-us/library/aa226553%28v=sql.80%29.aspx,尽管我认为它不是很流行。这与 LINQ 无关,LINQ 将使用其本机协议通过 1433 连接到 SQL,并且可能用于构建允许受限操作而不是通过 HTTP 手动操作服务器的网站。

    【讨论】:

      猜你喜欢
      • 2011-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多