c# - 如何提高 ASP.NET 站点的安全性?

标签 c# asp.net

我有一个 ASP.NET 站点,一些客户想要更好的安全层来访问它。今天的网站要求输入用户名和密码,但很多客户想要限制对某些机器的访问,我需要在我的服务器端执行此操作。所以,我想寻求一些建议。

  1. 使用 VPN 来限制访问? (使用移动设备将无法使用)

  2. 可以查看mac地址吗?

  3. 可以使用客户端证书吗?

最佳答案

对用户来说最简单

我会检查 multi-factor authentication (Andrew Walters 的评论提到了这一点)所有内容都通过 SSL 交付,并特别注意页面超时、 session 固定、密码策略等。

发送到手机的 PIN 是常用的第二因素。

我断言这“对用户来说最简单”,因为许多大型网站(例如 Google 和 Facebook,它们的银行)都以这种方式运营。无需安装任何内容,也无需学习任何新内容。

从商业角度来看,这很多都不可取。

VPN

Use a VPN to restrict the access? (With mobile devices will not work)

这是企业环境中的常见选项,通常被认为是安全的(尽管不能成为放弃密码策略等其他良好做法的借口)。但是,您确实可以选择移动设备。

参见 F5's SSL VPNs ,特别是他们的 whitepaper on mobile access for iOS and Android其中指出,“适用于 iOS 和 Android 设备的 BIG-IP 边缘门户应用程序简化了对企业 Web 应用程序的安全移动访问 [...] 用户可以安全地访问内部网页和 Web 应用程序。”

您可以通过在身份验证过程中添加另一个因素来提高安全性:a token with a continually changing PIN .

证书

Is possible to use client certificate ?

是的,是possible ;它是否满足您的业务需求是另一回事(例如,管理此类解决方案需要技能/时间)。

如果您不熟悉这个主题,我建议您阅读这篇 KB article (快速阅读)。

对于实现,这是一个古老但非常详细的 walkthrough和更新的 walkthrough对于 IIS 7。

关于c# - 如何提高 ASP.NET 站点的安全性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15118717/

相关文章:

c# - 如何将枚举值设置为 Web 用户控件的自定义属性?

c# - 动态创建的按钮,但为它们创建的事件未触发

c# - 将 javascript 数组解析为 C# 对象列表

c# - 将 SMO 应用程序部署到未安装 SQL Server 2008 的工作站

c# - 根据 Switch 语句获取值

c# - Microsoft JScript 运行时错误 : Object doesn't support this property or method

ASP.NET 对象可见性

c# - 我应该如何命名 Mono.Cecil 添加的新成员?

c# - 拆分字符串,在一行中转换 ToList<int>()

c# - 从 PDF 中提取 SWF 文件