【问题标题】:ASP.NET Web application security in VDS hostingVDS 托管中的 ASP.NET Web 应用程序安全性
【发布时间】:2015-04-17 18:42:42
【问题描述】:

我们正在设计 wcsf 中的 asp.net Web 应用程序。 Web 应用程序将部署到 Windows Server 2003 共享的VDS 托管。网站将用于 b2b、每月服务费和 Web 应用程序中使用的信用卡交易,因此它必须是安全的网站。我想考虑在部署之前必须做些什么,我需要回答几个问题:

1) 我如何复制保护我的网站和我的代码。代码签名是否足够?反光板保护应该怎么做?混淆就够了?

2) Windows Server 2003 VDS 托管优缺点如何?

3) MS SQL Server 2005 Express 适合那种商业用途? mssql express(4GB 存储和 1Gb 内存)的限制导致网站出现瓶颈?

4) 我以后可以将数据库从 express 版转移到 mssql 2005 工作组版没有问题吗?

【问题讨论】:

  • 这是 VPS 不是 VDS 请编辑...
  • 不……据我所知,他的意思是虚拟专用服务器。
  • 是的,我的意思是虚拟专用服务器。

标签: asp.net sql-server hosting vps


【解决方案1】:
  1. 混淆就足够了。代码签名不提供任何防止窥探的保护。此外,大多数受人尊敬的主机商对您的知识产权和数据不感兴趣。归根结底,他们从事的是托管业务。

  2. 我在一家托管公司工作,在我们的虚拟化平台上托管的客户数量正在快速增长。对于客户和我们自己来说,其中一个优势是,如果您需要更多 CPU 或内存,我们几乎可以立即添加它们,因为这只是 VM 上的配置设置。最终,这一切都取决于您的供应商如何构建他的虚拟环境。您确实需要收集有关其环境的功能和限制、每个节点通常运行多少台服务器等的更多信息,并确定它是否适合您。

  3. SQL 2005 express 将与完整的 SQL 2005 一样执行。限制在于功能(例如,没有 olap,那种东西),正如您正确指出的那样,它可以利用的最大内存量和最大数据库的大小。但是,如果您超出最大可用内存量,性能将会下降。

  4. SQL 2005 Express 数据库可以毫无问题地备份和恢复到任何 SQL 2005/2008 产品。

如果不知道会影响您的应用程序的流量,就很难预测虚拟服务器是否是最佳环境选择。这同样适用于 SQL 2005 express。如果应用程序是数据库密集型应用程序,您可能会发现自己承受着越来越大的内存压力 - SQL Server 拥有的内存越多,它可以缓存的越多。我认为您需要自己进行一些容量规划,并自己决定现在和以后的最佳解决方案是什么。

【讨论】:

  • Kev - 不要误会,但您是否担心 Erhan 将您的回复作为全部答案?您提供了非常有用的信息,但这可能会让他只专注于保护他的代码。如果他不保护网站和数据,他就会被黑客攻击。
  • 嗯...从技术上讲,我想我回答了他的所有观点,但您的回答也通过提供非常有效的附加点来增加价值。我想这是 SO 的唯一答案方法的问题。我至少希望他会给你一个赞成票,那是我的。
【解决方案2】:

二汗-

您的主要安全目标不是保护您的源代码,它是保护您客户的数据。为此,您必须确保 A)您的通信是安全的(SSL ) b) 您的代码实现了适当的安全性(不受 SQL 注入攻击)和 c) 您的数据库是安全的。

对于 (A) - 通信安全 - 您需要从像 Thawte 这样的人那里获得 SSL 证书(这是我们使用的人,我喜欢他们)。当您在服务器上安装证书时,您需要确保网站只接受安全 (SSL) 连接 - 至少对于包含敏感数据的所有页面。例如,所有包含信用卡数据的表单都必须通过 SSL 提交。

对于 (B) - 代码安全性 - 这值得整个 book!例如,您必须仅通过附加从网页收集的表单/请求数据来构造 SQL 调用(这会使您容易受到 SQL Injection 攻击)。 所有 SQL 参数必须参数化。等等等等。没有人可以在 SO 帖子中解释安全性 - 你有很多东西要学习。

对于 (C) - SQL Server 安全性 - 这也是一个复杂的主题,但有几个关键点。根据您的描述,我假设 SQL Server 与您的 Web 应用程序在同一台服务器上运行。这意味着您确实希望它接受来自网络的ANY连接。不要试图让它保持打开状态,以便您可以从桌面上的 SQL Management Studio 轻松访问它……这只是可怕的、愚蠢的安全做法。登录远程服务器后,您可以通过远程桌面访问它。此外,禁用“sa”帐户 - 立即执行。在端口 1433 上找到您的人(如果您不禁用所有网络访问)将在数年内每秒对 sa 帐户进行暴力密码猜测,等等。我们每天在为少数客户维护的非网站数据库上获得大约 17,000 个数据。这里还有更多要学习的东西,但如果你采取这两个步骤,你就会很好地覆盖。不过,可以肯定的是,我建议您还运行 MS 安全表面分析工具,并在适当的情况下遵循其建议,以降低 SQL Server 的可见性。

就虚拟机托管而言,应该没问题。然而,在MaximumASP(我使用、推荐和认为是业内最好的!),专用主机每月仅运行约 199 美元。我建议您考虑使用自己的专用服务器,以便在成功后轻松扩展业务。

对于您的数据库,SQL Server Express 将适用于此,是的,您将来可以升级到 Workgroup Edition。除非您实际达到这些限制,否则数据库限制不会对您的网站造成瓶颈。你需要弄清楚这是否可能。话虽如此,真的会建议尝试在免费版本的 MS 数据库上运行专业网站 - 尤其是保存财务数据的网站。无论取得任何成功,您都可能会突破这些限制。许多网络托管公司(尤其是 MaximumASP)允许您以最低价格(例如每月 25 美元或类似的价格)在服务器价格中添加专业版本的 SQL Server。

最后,您似乎对 Web 应用程序与 Windows 应用程序有些混淆。在 Web 应用程序中,您的用户将无法访问您的源代码/DLL(IIS 阻止访问各种文件,包括 dll 和 .config 文件)。他们不会下载和安装应用程序,因此您无需对代码进行签名,也无需进行混淆处理。在这种情况下,“反射器保护”对我来说甚至没有意义。

如果您担心您的托管公司看到您的代码,您应该寻找其他托管公司。话虽这么说,我只是无法想象任何有信誉的托管公司真的关心看到你的源代码。

祝你好运!

【讨论】:

  • 不错的帖子,但我不同意你关于“虚拟”专用服务器的看法。我们在我们的平台上托管了一些非常强大的虚拟服务器。它们不是“爱好”环境,完全适合高流量应用。
  • 谢谢 Kev - 我已经修改了我的帖子。我为特定客户使用了 Virtuozzo 虚拟服务器一段时间,虽然它总体上运行良好,但它给我们带来的问题比我们的任何专用服务器都多。当然,这已经是技术了!
  • 如果处理得当,它就像做梦一样。我们每个节点有 64GB 内存/16 个内核,后端存储是带有 SAS 磁盘等的 EMC Clariion SAN/RAID。我们现在在其上运行我们所有的共享平台(每台服务器 1200 个站点 - 15 个 VM 分布在 2 个节点上)和它撕裂了。
  • 嗯,那是铁。我想我没有想过你可以为单个服务器带来多少火力。
  • 不仅如此,能够在客户不注意的情况下将虚拟机从一个节点迁移到另一个节点等技巧也非常酷。我在您对我的回答的观察中添加了评论,没有感到难过。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-04
  • 2015-02-15
  • 2023-03-06
  • 1970-01-01
  • 2011-07-29
相关资源
最近更新 更多