如何配置和部署安全的.NET三层应用
来源:互联网 发布:歌词创作软件 编辑:程序博客网 时间:2024/04/28 19:20
| ||||
1. 前言 2. 三层架构应用 (图1) 这样做的好处是: 3. 本文演示程序简述 由于本文讲述的是如何安全的部署.NET三层应用,而不是如何开发。所以这个演示程序就不做详细介绍了。这是从数据库中列出所有顾客并能查询每个顾客订单的小演示程序。 文件目录: 客户端如下图二: (图2) 4. 配置你的系统 4.1. 总述 安全的体系结构,访问权限要责任明确,尽量使用专用身份进行访问,而且应该将权限设置为“恰好够用”的最小授权。主要从四个方面考虑。 4.2.1. 原因 在Windows中系统为IIS建了两个帐户,IUSR_MACHINENAME(Internet 来宾帐户)、IWAM_MACHINENAME(启动IIS进程帐户)。这样做的好处是,由于这两个帐户的权限很低(通常只能访问IIS)所以即使IIS被入侵,可以把损失降到最低。 4.2.2. 新建用户 新建用户如图三所示: (图3) 注: 4.2.3. 给这个用户配权限 注: 4.3. 建议重装你的SQL Server 4.3.1. 原因 重新建立安全的SQL Server。确保SQL Server以SQL Server Jail User 身份访问计算机资源。确保SQL Server只信任命名管道等。所以建议重装SQL Server。 4.3.2. 修改SQL Server服务帐户 在安装SQL Server的过程中有一步是指定SQL Server 服务是以什么身份运行。如图五: (图5) 注: 4.3.3. 指定SQL Server登录验证模式和网络连接方式 如图六、图七所示: (图6) 注: (图7) 注: 4.3.4. 安装SQL Server SP3 在安装SP3的时候有一步会提示你必须指定SA密码,因为在安装SQL Server的时候不允许以SA身份登录,所以SA密码为空。SP3认为SA密码为空是不安全的(即使SA不能用作登录)。我们要做的就是输入一串尽可能长且复杂的密码。
修改sample目录的安全,使sample目录及所有子目录和文件只能被administrators组的成员完全控制。其他默认访问控制删除。如图八。 (图8) 注: (图9) 5.1.3. 附加数据库(attach database) 在SQL Server企业管理器中附加数据库,在选择数据库的时候会发现,File Browser无法遍历进Sample文件夹。这是由于SQL Server 是以_SQLSERVER_身份运行的,而_SQLSERVER_身份无法访问Sample文件夹和数据库文件,接下来要给_SQLSERVER_遍历文件夹的权限和完全控制数据库文件的权限。 (图11) (图12) 5.2. 部署Web Service 5.2.1. 为Web Service新建一个应用程序池(application pool) 我推荐至少为每一个Web Service建立一个应用程序池。在IIS 6.0中建立一个应用程序池非常简单。启动IIS6.0,右键单击“应用程序池”,选择“新建”“应用程序池”,则弹出添加应用程序池对话框,输入应用程序池名称。如图十三。 (图13) 给AppPool-Demo应用程序池配权限,右键单击“AppPool-Demo”选“属性”弹出属性对话框。在这里可以设置一些应用属性。我们关心的是“标识”页,确保应用程序池安全帐户的预定义帐户是“网络服务”(即Network Service帐户)。如图十四。 (图14) 5.2.2. 给Web Service添加虚拟目录 虚拟目录名为demo,对应的路径是“C:/sample/demo/demo_Webservice”。新建虚拟目录就不再详述了。 (图16) 5.3. 配置数据库 5.3.1. 添加访问数据库用户 打开SQL Server企业管理器,展开Demo_DB树,右键点击“User”。选择“New Database User”,则弹出新建用户对话框,在“Login Name”下拉框中选择“New”,则又弹出一个对话框,手动向“Name”下拉框中填入“NT Authority/Network Service”。(说明:在SQL Server中必须手动填写全称,不能搜索此用户。对此,我也表示不解)。选择数据库为“demo_DB”。点击“确定”按钮。如图十七 (图17) 5.3.2. 为这个用户配权限 在SQL Server 企业管理器中展开“demo”数据库目录,点击“Users”,在右边的用户列表中右键单击“NT Authority/Network Service”,选择“属性”弹出对话框,点击“Permissions”按钮,则弹出权限对话框,将程序的两个用户定义的存储过程的“EXEC”权限点成“允许”。如图十八。 (图18) 6. 运行客户端程序 6.1. 运行 (图19) 这是由于客户端程序是以IUSR_MACHINENAME的身份访问的网络资源,在Web Server以Application Pool所指定的身份运行前,IIS是以IUSR_MACHINENAME的身份读取服务器资源的,直到IIS发现所请求的资源是Web Server程序,便以Application Pool所指定的身份执行Web Server。所以我们要向Web Server加入IUSR_MACHINENAME的可读取权限。如图二十。 (图20) 注: |
- 如何配置和部署安全的.NET三层应用(摘)
- 如何配置和部署安全的.NET三层应用
- 如何配置和部署安全的.NET三层应用
- 如何安全的配置和应用MySQL数据库
- 如何保护 .NET 应用的安全?
- .NET的三层架构应用
- 如何构建安全的.net web应用系统
- 如何构建安全的.net web应用系统
- 如何理解.Net的三层架构
- 如何理解.Net的三层架构
- .NET三层架构应用
- 怎么去安全的配置并且部署一个.NET Windows Forms应用程序
- Windows应用程序开发入门到精通九:安全的配置并部署.NET Windows Forms应用程序
- React Native 程序部署至 iOS 应用商店之前需要的配置和如何生成 release 版本的 APK 包
- 如何进行Web应用的安全测试和输入校验
- 如何使用Microsoft .NET保护应用程序和数据的安全
- .net mvc 和三层的区别
- .net mvc 和 三层架构的区别
- 把命运当成使命
- Messages Used with Menus
- Windows SDK笔记(二):在窗口上建立控件
- state设计模式学习, 一个C++的实现
- Appfuse与现有东西的整合方案
- 如何配置和部署安全的.NET三层应用
- 菜单的制作(WINFORMS)
- 醉汉过坟场
- eclipse out of memory错误的解决方法
- 缺陷跟踪管理
- JSP彩色验证码
- 富兰克林道德准则
- ASP.NET中不定级动态菜单的实现
- Q.931:信令网络层协议--网络大典