现在位置首页 / 项目实战 /正文

IIS部署时注意的安全问题--asp.net漏洞修复及ssl安装

作者: IT小兵 | 2013年7月7日| 热度:℃ | 评论: |参与:

这几天移动那边对我们的系统做了严格的安全扫描,并提出了扫描报告,

一看,了不得!我们的系统脆弱的可以了~通过几个脚本注入、文件漏洞等就控制了Web服务器。

sql脚本注入的我已经单独列过一个文档了,就不再写了。


1、文件上传,如果不做限制的话,将会是一个巨大的Bug。

A、文件大小限制:不限制会把服务器的磁盘空间占满

B、对类型进行限制:不对类型限制,将会导致非法文件的上传,如:上传做好的aspx文件、批处理文件等,aspx文件的功能中如有对磁盘文件查询、权限修改等,就会读取到Web.config。当然重要信息放在web.config也是不安全的

2、由于系统开放了80端口,因此,局方那边要求对80的访问需要进行SSL加密处理。但是由于系统开发时,未考虑ssl加密下的性能和部分功能是否正常(上传、下载等)。因此,只是对登录做验证。

什么是SSL?

SSL是指安全套接层协议层(以及传输层协议TLS)是目前使用最广泛的安全协议。  它为通过互联网或内部网络连接,进行操作的两台机器之间,提供安全的通道。  当浏览器需要通过不可靠的互联网,与服务器安全地连接时,我们通常可以看到SSL技术被使用于其中。


什么是https?


HTTPS 是一个安全通信通道,用于在客户计算机和服务器之间交换信息。它使用安全套接字层 (SSL)。  


下面就向大家介绍如何在IIS服务器中使用SSL安全加密机制。


系统:Windows Server 2003

一。首先需要为网站生成一个证书请求文件。

步骤:

1.1控制面板-〉管理工具-〉IIS信息服务管理

1.2展开网站目录,选择要使用SSL安全加密机制功能的网站,右键-〉属性

1.3切换到“目录安全性”标签页

1.4点击“服务器证书”按钮

1.5在“IIS证书向导”窗口中选择“新建证书”选项

1.6点击“下一步”,选中“现在准备证书请求,但稍后发送”

1.7接着在“名称”栏中为该证书起个名字,在“位长”下拉列表中选择“密钥的位长”

1.8接着设置证书的单位、部门、和地理信息

1.9在站点“公用名称栏”中输入该网站的域名

1.10然后指定证书请求文件的保存位置,如:c:\certreq.txt

二。申请IIS网站证书

这个过程需要证书服务(Certificate Services)的支持。Windows 2003系统默认状态没安装此服务,需要手工添加。

2.1安装证书服务

2.1.1在“控制面板”中运行“添加或删除程序”,切换到“添加/删除Windows组件”页

2.1.2在“Windows组件向导”对话框中,选中“证书服务”选项

2.1.3接下来选择CA类型,选择“独立根CA”

2.1.4然后为该CA服务器起个名字,设置证书的有效期限,建议使用默认值“5年”即可2.1.5最后指定证书数据库和证书数据库日志的位置后,就完成了证书服务的安装。

2.2申请IIS网站证书

2.2.1运行Internet Explorer浏览器,在地址栏中输“localhost/CertSrv/default.asp”。

2.2.2接着在“Microsoft 证书服务”欢迎窗口中点击“申请一个证书”链接

2.2.3然后在证书申请类型中点击“高级证书申请”链接

2.2.4在高级证书申请窗口中点击“使用BASE64编码的CMC或PKCS#10文件提交….”链接2.2.5接着将证书请求文件的内容复制到“保存的申请”输入框中(即c:\certreq.txt),最后点击“提交”按钮。

三。颁发IIS网站证书

虽然完成了IIS网站证书的申请后,但这时它还处于挂起状态,需要颁发后才能生效。

3.1控制面板→管理工具,运行“证书颁发机构”程序

3.2在“证书颁发机构”左侧窗口中展开目录,选中“挂起的申请”目录,在右侧窗口找到刚才申请的证书,鼠标右键点击该证书,选择“所有任务→颁发”

3.3接着点击 “颁发的证书”目录,打开刚刚颁发成功的证书,在 “证书”对话框中切换到“详细信息”标签页。点击“复制到文件”按钮,弹出证书导出对话框,一路下一步,在“要导出的文件”栏中指定文件名,这里笔者保存证书路径为“c:\cce.cer”,最后点击“完成”。

四。导入IIS网站证书

4.1在IIS管理器的“目录安全性”标签页中,点击“服务器证书”按钮

4.2弹出“挂起的证书请求”对话框,选择“处理挂起的请求并安装证书”选项

4.3点击“下一步”后,指定好刚才导出的IIS网站证书文件的位置

4.4接着指定SSL使用的端口,建议使用默认的“443”,最后点击“完成”按钮

五。配置IIS服务器

5.1在“目录安全性”标签页,点击安全通信栏的“编辑”按钮,选中“要求安全通道(SSL)”和“要求128位加密”选项,最后点击“确定”按钮即可。

5.2接着点击“身份验证和访问控制”栏的“编辑”按钮,在对话框中取消“启用匿名访问”和“集成Windows身份验证”选项,这里要选中“基本身份验证”选项,最后点击“确定”按钮。


3、.net版本对虚拟目录的影响

在部署过程中,老是遇到.net版本的问题,一般是2.0与1.1的并存问题。

A、如果是2.0与1.1的版本问题,兼容性一般不好做,不好做主要是:不是每次都成功!

一般我们是这样:

1)、为每个应用网站新建单独的应用程序池:这个非常重要,尤其是2.0和1.1的应用一定要分开。

2)、对web.config的配置数据进行统一:这个主要是因此IIS的web.config有继承的功能。虚拟目录会继承默认站点的web.config。如果,两个站点的配置、dll引用不一样就难办了。

这个有一个办法就是,在默认网站下面不指向.net网站,也就不存在web.config继承的问题了。

在默认网站下面建立一个index.html,用js在页面加载的时候,直接指向到你默认的虚拟目录就可以了

3)、如果使用了默认网站指向.net网站的方式,下面的虚拟目录网站就会继承默认的web.config,就会缺少dll、主题文件等。这些都是在web.config中配置的。缺少什么,如果没有大的影响Copy到虚拟目录下面就可以了,包括Dll和主题文件等。

4)、

昨天部署程序时,运行总是出现“使用主题 css 文件要求页上有标头控件。(例如 <head runat="server" />)。”这样的错误。

这应该是因为Asp.net2.0引入Theme后,要求<Head>标签runat="server";

主要是因为该站点没有使用Theme,但是继承了默认站点的web.config,导致对页面的head进行了验证,我在页面的Head标签中添加上runat="server",即可。


转载请注明来源:IT分享  http://suchso.com

点击阅读本文所属分类的更多文章: 项目实战 。和高手一起交流:346717337
友荐云推荐

未注明转发、原文均为本站原创。分享本文请注明 原文链接

给您更多信息和帮助

在这里您可以找到更多:

技术交流群:346717337 Jquery插件交流

投稿:[email protected]

承接:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/业务咨询

echarts教程系列
本月最热文章

微信扫一扫,徜徉悠嘻网,您的休闲乐园

微信公众号:快乐每一天

随机文章
标签

技术交流群:346717337

投稿:[email protected]

专业专注:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/付费问题咨询