asp.net网站安全从小做起与防范小结

以下都以ASP.NET开发网站为例。

1、sql注入漏洞。

解决办法:使用存储过程,参数不要用字符串拼接。简单改进办法:使用SqlHelper和OledbHelper

2、跨站脚本漏洞

解决办法:“默认禁止,显式允许”的策略。具体参考:从客户端检测到有潜在危险的Request.Form值,禁止提交html标记(<>等被转义成<)

3、上传漏洞

解决办法:禁止上传目录的运行权限。只给读取权限。另外要禁止上传非法类型文件。不仅仅是aspx类型,包括很多,甚至htm、html类型文件也不应该直接上传保存。

4、数据库连接帐号,尽量使用最低权限的帐号。一定不要给管理员权限。

假如被黑客得知了数据库的密码。
那我们就可以执行任意系统命令了。
例如:xp_cmdshell 'dir c:\'
另外还有
tasklist
taskkill
pslist
pskill
net user
net user guest /active:yes
net user hack hack /add
net user hack /del
net localgruop administrators hack /add
query user
logoff 1
这些命令是不是很恐怖?呵呵。所以一定不要给web数据库连接帐号管理权限。

5、用户登录。这里不要把用户标识明文存储在cookie里,以用来标识用户是否登录。因为cookie是可以被修改的。请看这里的修改cookie,冒充其他用户。nc httpwatch使用视频教程,用微软的Forms窗体身份验证和角色一般情况都够用了。

6、如果网站程序中用到读写文件,一定要慎重,因为读取的操作很可能被黑客利用,例如用一个查看图片的aspx文件读取web.config,用一个生产模板的功能生成木马。

7、充分利用验证码。用户登录、评论等等可能会被提交垃圾信息的地方,都要使用验证码,而且要有一个安全的验证码。才能防止被暴力破解,防止网站充满垃圾数据。

8、代码要严谨,修改用户资料、修改用户数据都要跟用户关联起来,比如update news set title='新的标题' where id=新闻编号,这里还要加一个限制:userid=用户编号,这样可以防止一个人修改别人的新闻。

9、关闭web.config中的错误显示。<customErrors mode="RemoteOnly" defaultRedirect="404.aspx"></customErrors>

以上是程序方面的安全问题,想到哪里就写到哪里。没有系统的整理。

另外顺便提提服务器安全问题。

1、开启windows防火墙,关闭不用的端口。这点是最重要的。就是说你提供的服务越少,你的服务器就越安全。

2、设置安全的密码。复杂度要达到一定强度。定期修改密码。密码不要泄露给别人,包括机房管理员。如果必要告诉机房人员,待机房人员用完密码以后立刻改掉。

3、安装ARP防火墙。机房里ARP病毒非常多,如果中了ARP病毒,轻者浏览网站不正常,可能有木马跟随。严重的就整个网站、机房都断网了。

4、适当的安装杀毒软件。(诺顿、麦咖啡等)

5、IIS关闭不用的服务,例如asp支持,关闭不用的服务:ftp,smtp,pop3等等,修改网站根目录。设置目录权限。

6、针对各种攻击,有不同的对策,例如cc攻击。曾经遇到一次,深圳那边有5台连续IP的机器对我的一个视频站发动CC攻击,导致网站打开非常的慢,开始我们还不知道是被攻击,以为程序有漏洞,不停的找程序的问题。后来通过服务器安全管理软件,查出是这些IP在作怪,通过站长屏蔽IP访问的几种方法中提到的“本地安全策略”方法屏蔽掉这5个IP以后服务器恢复正常,网站恢复了往日的速度。

常用命令:iisapp -a,netstat -nao,tasklist,telnet xxx.xxx.xxx.xxx 端口

7、远程管理软件不要用默认端口,虽然密码被暴力破解和猜到的可能很小,但是总是有无聊的人尝试。造成日志里一堆垃圾信息。修改端口以后就没有人尝试破解密码了。因为他跟不知道这个端口是做什么的。谈到这里,我想起,不用的服务要关闭,那么用的服务器就要开启吗?那肯定是要启动的,不启动谁都用不了了,这里可以做一个限制,比如我的smtp服务只提供本机使用,那么我从防火墙里把25端口关闭,如果我的SQL SERVER只是供本机使用的。那么我也从防火墙里吧1433端口关闭。这样外部无法连接,自然也不存在暴力破解数据库密码了。windows防火墙还可以针对某一个IP开放某个端口。还是比较强大的。

以上乱七八糟的谈了一堆,希望对站长和程序员们有所帮助,大家可以加我QQ:4111852交流。我非常的欢迎。

最后说一下那个网友被挂马的解决建议:

1、备份好数据库、其他数据。

2、把所有程序、包括目录全部删除,以确保没有文件被留后门。

3、如果有可能,检查服务器安全,确保服务器没有被建立后门,例如超级帐号、安装了后门木马。这样的话,你怎么修改你的程序都没用,人家随时可以修改你的程序。

4、另一个网友提到的办法,上传一个静态文件test.html,访问一下看看,是不是也有木马以排除网络问题。

5、如果4中,确认不是网络问题,那就是文件被挂马了,全部程序删除,上传自己的安全的备份,恢复数据,检查数据库,确保木马不在数据库中。

6、查看IIS日志,看谁登录过后台,参考:iis日志分析视频教程

思路特别乱,大家将就看一下吧

时间: 2008-09-07

vs2010制作简单的asp.net网站

直入主题: 打开visual studio 2010程序开发软件 单击菜单栏的文件,依次选新建->网站->ASP.NET空网站,这里我们选择空网站,利于今后DIY自己的网站,最好什么从头来,便于对各类架构的理解(若是选择ASP.NET网站也行,只是里面已经集成了一些东西) 这里我们默认解决方案的名称为WebSite1,单击确定后进入网站的代码页面,在右边的解决方案资源管理器里只有一个web.config文件,这个文件用于对网站进行全局化的设置 web.config其实是一个xml文档,里面有很

ASP.NET编程获取网站根目录方法小结

本文实例讲述了ASP.NET编程获取网站根目录方法.分享给大家供大家参考,具体如下: 获取网站根目录的方法有几种如: Server.MapPath(Request.ServerVariables["PATH_INFO"]) Server.MapPath("/") Server.MapPath("")//当前代码文件所在的目录路劲 Server.MapPath(".") Server.MapPath("../"

VS2010发布Web网站技术攻略

VS2010 Web网站发布详解 对VS2010来说,发布Web是一件相当容易的事情,也许就是这个原因导致网上关于发布网站具体细节的资料很少.然而这些正是初学者所需要的,下面我详细介绍一下Web网站发布的具体过程. 第一步:在解决方案资源管理器中右击Web应用程序名(例如:newsSystem)-->点击发布,如图所示: 第二步:在弹出的对话框中,发布方法选:文件系统,目标位置自定义(如:选桌面的test文件夹),勾选"发布前删除所有现有文件"单选框,然后点击发布即可.如图: 补

ASP.net(C#)从其他网站抓取内容并截取有用信息的实现代码

1. 需要引用的类库 复制代码 代码如下: using System.Net; using System.IO; using System.Text; using System.Text.RegularExpressions; 2. 获取其他网站网页内容的关键代码 复制代码 代码如下: WebRequest request = WebRequest.Create("http://目标网址.com/"); WebResponse response = request.GetRespons

ASP.NET 网站开发中常用到的广告效果代码

用本贴持续记录一些收集的广告效果.希望给有需求的朋友们一些支持.也希望朋友们把我未记录的广告形式也给予一起回贴.使本贴更加的完善,也让更多的朋友们分享. 1.翻屏效果 翻屏效果 复制代码 代码如下: <html> <head></head> <body> <div style="HEIGHT:85px"> <script LANGUAGE='JavaScript'> document.ns = navigator.

ASP.NET MVC5网站开发用户登录、注销(五)

一.创建ClaimsIdentity ClaimsIdentity(委托基于声明的标识)是在ASP.NET Identity身份认证系统的登录时要用到,我们在UserService中来生成它. 1.打开IBLL项目InterfaceUserService接口,添加接口方法ClaimsIdentity CreateIdentity(User user, string authenticationType); 2.打开BLL项目的UserService类,添加CreateIdentity方法的实现代

VS2010制作第一个简单网站

制作一个简单示例网站的步骤: 一.启动VS 2010开发环境,选择菜单中的"文件",选择其中的"新建",再选择"网站",会弹出"新建网站"对话框. 二.在"新建网站"的对话框,在"已安装模板"中选择Visual C#,右侧的选择"ASP.NET网站"选项,单击"新建网站"中的"文件系统",下拉菜单中有"文件系统&quo

入侵ASP.net网站的经验附利用代码

1. 对一般遇到.net的网站时 通常会注册个用户 第一选择利用上传判断的漏洞 加图片头GIF89A 顺利饶过 2. 第二种就是注入了, 在?id=xx后加单引号 " ' " 一般情况下 用NBSI 啊D来SCAN 都可以发现BUG页面 而且国内大多.net都是使用MSSQL数据库 发现注入点也可以从login下手 其实这个方法目前的成功率在75% 3. 不过遇到搜索型的,和没错误信息回显的时候 在这里就卡住了 大家可以看看网上一篇 搜索型注入的文章 运气好,数据库和WEB在一起 直接

ASP.NET网站使用Kindeditor富文本编辑器配置步骤

1. 下载编辑器 下载 KindEditor 最新版本,下载页面: http://www.kindsoft.net/down.php 2. 部署编辑器 解压 kindeditor-x.x.x.zip 文件,将editor文件夹复制到web目录下  3.在网页中加入(ValidateRequest="false") 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" Validat

asp.net获取网站目录物理路径示例

页面后台cs文件的相对网站根目录的路径/view/Atlas 复制代码 代码如下: string rootPath1= Server.MapPath("~"); string rootPath2 = Request.ApplicationPath; string path1 = Server.MapPath("upload"); string path2 = Server.MapPath(""); string path3 = Server.Ma

ASP.NET网站实时显示时间的方法

本文实例讲述了ASP.NET网站实时显示时间的方法.分享给大家供大家参考.具体方法如下: 在ASP.NET环境中开发设计网站或网络应用程序时,往往需要实时显示当前日期和时间.这时,通常使用AJAX控件来实现. 需要注意的是,在.NET Framework 2.0版本中,工具箱中是没有AJAX Extensions控件的.而.NET Framework 3.5版本中集成了AJAX. ASP.NET AJAX包括三部分: ①一个扩展客户端JavaScript功能的客户端库或框架: ②一个允许ASP.

asp.net网站的404错误页面的正确设置方法第1/2页

什么是404错误 HTTP 404 错误意味着链接指向的网页不存在,即原始网页的URL失效,这种情况经常会发生,很难避免,比如说:网页URL生成规则改变.网页文件更名或移动位置.导入链接拼写错误等,导致原来的URL地址无法访问;当Web 服务器接到类似请求时,会返回一个404 状态码,告诉浏览器要请求的资源并不存在.但是,Web服务器默认的404错误页面,无论Apache还是IIS,均十分简陋.呆板且对用户不友好,无法给用户提供必要的信息以获取更多线索,无疑这会造成用户的流失. 404页面的作用

asp.net B2B网站对接支付宝接口

大型网上购物系统除了能让会员选择货到付款结账方式外,还应该提供一些更方便快捷的网上支付方式.如果网上商店没有足够的实力提供会员直接在网站中建立现金账户的功能,就可以将订单信息转接到支付宝,让会员从支付宝付款.当然就算会员可以在网站上建立自己的现金账户,提供支付宝支付功能也不失为另一种方便快捷的支付方式,这可以给客户提供更多可选的支付方式. 首先,网上购物系统必须与支付宝公司签订合作协议,以确保从本购物网站上传到 支付宝网站上的订单信息能被正确接收. 当会员于购物网站上买下一系列商品并选择支付宝付

iis6网站属性没有asp.net选项卡的解决办法

iis6安装了asp.net,但是网站属性中没有显示asp.net选项卡. 解决办法如下:   1,如果是只安装了.net framework 1.1 在iis中是不显示那个选项卡的.默认就会支持asp.net1.1.在安装了.net framework 2.0后,iis站点属性里才会有asp.net的选项.   2,安装asp.net2.0后,请关闭iis窗口,重新打开iis,iis站点属性里才会有asp.net的选项   3,如果还没有,那么就要重新在IIS中注册asp.net,方法如下:

win2003 IIS6,能访问html页 但是不能访问aspx页解决办法汇总

全是网上资料,放一起,方便查找. 描述下目前遇到的问题: win2003 sp2 系统.装上IIS6后,html正常访问,但是aspx页就是访问不了,日志文件也不做任何问题的记录. 万般无奈,能找到的办法都上了.目前只剩最后2个解决办法: 1.下载一个SP2系统iso,提取里面的 i386再装一次IIS,如果不行只能采取第二种方法了 2.换个盘重装系统.然后继续... -------------------------------------- 已经解决.采用的上面第一次方法,下载wIN2003

asp.net中“从客户端中检测到有潜在危险的Request.Form值”错误的解决办法

在提交表单时候,asp.net 提示:"从客户端(......)中检测到有潜在危险的 Request.Form 值" .asp.net中的请求验证特性提供了某一等级的保护措施防止XSS攻击,asp.net的请求验证是默认启动的. 这里给出不同版本.net的解决方法. asp.net 2.0 通常解决办法 方案一: 将.aspx文件中的page项添加ValidateRequest="false" ,如下: <%@ Page ValidateRequest=&qu

Win2003安装IIS6.0不支持ASP的解决方法图文教程

ASP程序在Windows 2003 Server下无法正常运行,首页为.html格式的网页能够浏览,但是无法进入后台,点击链接出现:您访问的页面不存在或无法访问之类的错误.这是您在安装完2003后,没有经过一些必要的设置,请按照下面的说明一步步操作: 设置1: 让Windows 2003 Server支持ASP程序 默认安装的情况下,Win 2003 Server是不支持ASP程序的. [设置]-[控制面板]-[管理工具],打开INTERNET信息服务(IIS)管理器,再打开允许ASP环境的W

WIN2008系统安装IIS7配过ASP后打开ASP网站为500错误的解决办法

访问ASP网站时总是提示:"500 - 内部服务器错误.您要查找的资源有问题,无法显示." 上面显示的是IIS的友好报错,按下面的步骤把详细错误显示出来! 1.在IIS管理器→ASP里,把错误信息发送到浏览器这个选项开启(True),并注意在IE设置里去掉"显示友好的错误":2.然后在"错误页"设置选项里,双击500那一行,再点文件按路径后面的"设置".在跳出的对话框中将"相对文件路径"里的文件名改为&qu

javascript通过获取html标签属性class实现多选项卡的方法

本文实例讲述了javascript通过获取html标签属性class实现多选项卡的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>原生javascript通过获取html标签属性class实现多选项卡</title> <style type="text/css">

iis6手工创建网站后无法运行php脚本的解决方法

给人搬了十几个网站,老站用西部数码建站助手创建的,现在过期了无法继续创建,只能在Internet 信息服务(IIS)管理器创建网站,创建下来都没问题,但是就是无法打开网站. 测试打开txt文档.静态页面都能打开,一到打开php文件就直接就挂了,无法打开,什么报错都没有. 之前有用iis6以外的服务器创建过网站,都是直接创建就可以运行. 没报错不好找问题,百度用别人的方法操作也不行.实在没办法,只能对着之前用建站助手创建的网站配置,放下架子,一个个看过去,结果发现用建站助手创建的网站ISAPI拓展

一般网站最容易发生的故障的解决方法

1.出现提示网页无法显示,500错误的时候,又没有详细的提示信息 可以进行下面的操作显示详细的提示信息:IE-工具-internet选项-高级-友好的http错误信息提示,将这选项前面不打勾,则可以看到详细的提示信息了 以下是解决500错误的方法.请复制以下信息并保存为: 解决IIS6.0的(asp不能访问)请求的资源在使用中的办法.bat然后在服务器上执行一下,你的ASP就又可以正常运行了.echo offecho 文件说明:解决IIS6.0的: 请求的资源在使用中的最佳解决方法echo 联系

Win2003 IIS浏览ASP提示无法找到该页的解决办法

鄙视下自己的,所有说越基础的越容易出问题 昨天LP在Win2003下安装了IIS想要测试一个ASP网站,结果运行时老是提示'无法找到该页',但是浏览html等静态页面是正常的,百思不得其解.我也帮忙调了半天,重新设置目录,改权限都没有用,还是一样的错误. 实在没办法了,上网搜索之,原来是因为IIS6.0中的Web服务扩展有几项是禁止的,把Active Server Pages.WebDAV.在服务器端的包含文件这三项设置为允许就行了,如图: 最后终于是一切正常了~~~ 这里我们简单的总结下解决方

访问asp页面出现出现“请求的资源在使用中”的解决办法

首先解决方法:在Dos命令行状态下分别输入下列命令并按回车(Enter)键: regsvr32 jscript.dll (命令功能:修复Java动态链接库) regsvr32 vbscript.dll (命令功能:修复VB动态链接库) 如果不行再试下面的方法: "内部服务器错误" "请求的资源在使用中"解决办法 [转] 一.出现的问题 windows2003 IIS6运行ASP, http 500 - 内部服务器错误 就是asp程序不能浏览 但htm静态网页不受影响