0

我想知道是否需要在这个 asp.net 应用程序上添加任何其他类型的安全性 - Web 表单(仅在网络域和通过 VPN 连接可用)?

应用环境: Asp.net 4.0, Vb.net, Oracle 10g, Web Services, Window server 2003 or 2008, Hosted on domain

用户认证模式:窗口(不使用 asp.net 会员)

认证场景:
应用程序可通过内网站点访问,系统使用系统用户名对用户进行认证。在默认页面系统会先获取当前用户名(HttpContext.Current.User.Identity.Name),然后在用户表(oracle DB)中匹配,如果匹配,则存储过程将返回所有访问权限(菜单详细信息)与此用户组相关。oracle DB中有一个用户组和权限表。在存储过程中,系统还将在任何 DML 事务之前检查用户权限。

主要安全问题

Major:限制人们访问信息取决于他们的权限。普通用户不应该访问其他人的数据。

Minor:我们不希望任何人在办公网络之外进入我们的系统。

4

2 回答 2

1

正如 Joachim 所说,这种安排只支持在本地网络上运行的 Windows 系统。转向基本身份验证将允许更多客户端连接,但会在没有 HTTPS 的情况下在网络上公开密码(有效地以明文形式)。表单身份验证类似。

如果没有服务器身份验证,用户可能会在不知情的情况下被重定向到类似的服务器,或者遭受中间人攻击。HTTPS 为您提供服务器证书。这在本地网络上可能不是问题,但用户的hosts(在 c:\windows\system32\drivers\etc 中)文件通常很容易受到攻击。

如果没有加密,任何用户都可以嗅探通过网络发送和转发的信息,假设他们在同一个子网上。对于大多数应用程序来说,这可能是一个可接受的风险,但如果信息是敏感的,例如包含敏感信息或个人信息,则不是。

如果人们正在执行诸如批准之类的重要操作,请考虑重放攻击(例如,请参阅如何防止重放攻击? )。

考虑审核对数据库的访问,尤其是用户组和权限表。有人可以添加自己或将他们移动到一个组中,执行操作然后删除自己。检查您的页面是否有可能实现此目的的 SQL 注入和类似攻击。

总而言之,人们妥协或干扰系统的可能性有多大,您愿意投资多少来保护它?假设服务器可以处理负载,HTTPS 作为第一步很难通过。

于 2012-09-09T12:01:40.467 回答
0

不确定您使用的是哪种 ASP.Net 技术(MVC/Razor/Web 表单)。

如果您使用的是Web 窗体,那么您可以立即利用像LoginView控件这样的ASP.NET 登录控件。它们使用ASP.Net 表单身份验证(使用或不使用 ASP.net 成员身份)。您还可以利用Roles

如果您的 Intranet 服务器没有公开(以任何方式)在您的网络中公开,则它应该受到“保护”。当然,这是一个大胆的声明,完全取决于您的网络实施 - 例如子网划分、内部网络/无 nat/路由/无端口转发、无 dns 等。这使VPN成为您从外部暴露的唯一点,那么您必须为您的 VPN 基础设施实施适当的安全策略 - 例如一次性密码、客户端检查等。


更新:

如果您使用 Active Directory,您可以在 AD 中创建用户/组以提供相应的访问权限(例如 Finance AD 组只能访问“finance”文件夹)。但是,我没有跟上 Internet Explorer 之外的浏览器对 NTLM 的支持。

但是,您确实提到了用户数据在 Oracle 数据库中(?)。我不熟悉使用 db/Oracle 不允许登录屏幕访问(网络资源)的解决方案.....

此外,这意味着用于 VPN 访问的一次性密码可能不可用。研究基于令牌的 VPN,这样用户仍然可以使用他们的 AD 凭据,但每次都需要一个新的令牌——这将有助于减轻“黄色便签中的密码”(因为您可以更严格地控​​制令牌)。

于 2012-09-09T23:29:26.497 回答