再谈“ASP.NET网站限制恶意访问”

  1. 采用Cookie记录验证码是最方便的方式,无论是从开发成本还是从维护、运营成本来看,都是性价比最高的。在不至于太严格要求的网站中,建议采用Cookie的方式。
  2. 验证码如果需要存入Cookie中,需要加密。加密方式有很多,最普通的是md5。但是现在网上已有很多md5密码数据库(如 http://www.cmd5.com/),有的甚至提供API,所以单纯只使用md5是靠不住的。在我的加密中,我将传统生成md5的方式做了一些修改,基本能够保证恶意访问者无法通过加密的Cookie来获取到真实验证码。
    public  static string GetMd5(string str)
        {
        string cl =DateTime.Now.Month+ str + DateTime.Now.Day;//将真实验证码加上前缀与后缀后再加密;
        string pwd = "";
        MD5 md5 = MD5.Create();//实例化一个md5对像
        // 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择
        byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
        s.Reverse();    //翻转生成的MD5码
        // 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
        for (int i = 3; i < s.Length-1; i++) //只取MD5码的一部分;恶意访问者无法知道我取的是哪几位。
        {
        // 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
        pwd = pwd + (s[i]<198?s[i]+28:s[i]).ToString("X"); // 进一步对生成的MD5码做一些改造。
        }
        return pwd;
        }
  3. 限制频繁访问是一定要做的。
    在我的网站中,正常访问的用户不可能在4小时内访问200次以上。这是有统计来源的。根据我采用的一些统计代码,我发现访问最频繁的用户,在4小时内访问的最大值仅为76次,而且这是一个最特殊的特例而已。
    所以如果我一旦发现有用户在4小时内访问太多次数, 几乎就可以判断他为恶意用户。
    这不是一个最绝对的判断方式,但仍然是可行性最高、成本最低的。
  4. 限制频繁访问的方式,使用Cache最好,使用XML最次。
    在ASP.NET网站限制访问频率一文中,我提出了使用Cache来记录用户的IP、访问方式、访问次数。这也是参考了很多大型网站防止DoS攻击的方式。
    有朋友提出,使用Cache或许会造成服务器资源开销,建议使用XML;如果XML太大,可以分成零碎模块。
    我的观点是,XML文件的效率确实太差。以前我测试过,十万行数据的XML文件,一次读写操作就接近1秒,更不用说网站的频繁访问、需要频繁操作XML文件了。然后同样的十万条Cache数据,占用内容仅为几十M(如一条数据占用1k内存,十万条占用100M;然后实际操作中,1条数据远没有1k),处理速度在10毫秒内。
    不仅如此,就算我们把访问记录到XML文件中,我们对它进行读写操作,也是要将它载入内存的。而十万行数据的XML文件,与十万行Cache中的KeyValue对,占用的内存也是不能同日而语的。
    综上所述,使用XML文件进行记录,不仅不能够减少服务器压力(内存、硬盘、CPU计算次数),反而还增加了服务器压力、大大增加了请求响应时间。最好的方式仍然是使用Cache。
本文转自 流牛木马 博客园博客,原文链接:http://www.cnblogs.com/azure/archive/2009/09/20/1570428.html,如需转载请自行联系原作者
Asp限制IP访问 阻止某一个IP段禁止访问本站的代码 代码如下: <% ”获取访问者的地址 ip=Request.ServerVariables(“REMOTE_ADDR”) ”允许的IP地址段为10.0.0.0~10.68.63.255 allowip1=”10.0.0.0″ allowip2=”10.68.10.71″ response.writecheckip(ip,allowip1,allowip2) functioncheckip(ip,allowip1,allowip2) dimcheck(4) checkip=false ipstr=split(ip,”.”) allow1=split(allowip1,”.”) allow2=sp 立即下载

相关推荐

鱼眼双目测距实战:从OpenCV标定到SGBM匹配的完整流程解析

本文详细解析了鱼眼双目测距的完整流程,从OpenCV标定到SGBM匹配,涵盖标定、校正、匹配和测距四个关键阶段。通过实战经验分享,帮助开发者解决鱼眼镜头强畸变带来的测距挑战,提升测距精度至5%以内。特别适合机器人导航、自动驾驶和VR领域的开发者参考。

weixin_27298377的博客 124

利用 ASP.NET 的内置功能抵御 Web 攻击(摘自MSDN)

 利用 ASP.NET 的内置功能抵御 Web 攻击发布日期: 4/28/2005 | 更新日期: 4/28/2005Dino EspositoWintellect 适用于Microsoft ASP.NET 1.xMicrosoft ASP.NET 2.0摘要: Dino 总结了最常见的 Web 攻击类型,并介绍了 Web 开发人员可以如何使用 ASP.NET 的内置功能来改进安全性。本页内容AS

Bluesky 1186

麒麟操作系统Kylin如何从 2203 升级到 2403

fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;开始升级流程第一步:升级前准备1. 确认版本为 V10 SP1 22032. 备份全部重要数据3. 确保网络稳定4. 关闭应用第二步:选择升级方式方法一:图形界面升级方法二:命令行升级1. 更新现有系统至最新2. 启动“系统升级”工具3. 检测并开始下载2403。

让编程变的很简单!! 2674

ASP.NET - 保证数据访问的安全

      大多数 ASP.NET Web 应用程序都涉及数据访问。许多应用程序都会收集数据并将其存储在数据库或文件中,要存储的数据通常基于来自用户的信息。由于原始数据可能来自不受信任的来源,信息是以持久格式存储的,并且您希望确保未经授权的用户不能直接访问您的数据源,因而您需要特别注意与数据访问有关的安全问题。尽管遵循编码和配置最佳做法可以提高应用程序的安全性。但还有一点也很重要,那就是应

dodream的专栏 779

基于Transformers库的BERT模型:一个文本情感分类的实例解析

简介 本文来讲述BERT应用的一个例子,采用预训练好的BERT模型来进行演示。BERT的库来源于Transformers,这是一个由PyTorch编写的库,其集成了多个NLP领域SOTA的模型,比如bert、gpt-2、transformer xl等,并且可以自由选择已经预训练好的模型参数,我们可以基于这些参数进行进一步的训练调试。 Part 1: 利用BERT基于特征的方式进行建模 1、任务与数...

蓝天白云梦的csdn博客 2万+

RK3568笔记九十四:基于QT的YOLOV5目标检测

基于RK3568平台的实时目标检测应用,使用YOLOv5模型和RKNN推理引擎实现摄像头实时目标检测,并通过Qt界面显示检测结果。主要功能实时摄像头目标检测:从摄像头获取视频流,使用YOLOv5模型进行目标检测RKNN推理加速:利用RK3568内置的NPU进行模型推理加速图形界面显示:使用Qt框架构建用户界面,实时显示检测结果RGA图像处理:使用Rockchip Graphic Accelerator进行图像缩放处理。

523

asp.net中防止攻击的方法

<br /> 你应该在程序中验证所有的不信任输入.你应该假定所有的用户输入都是非法的.用户可以在应用程序中提供表单字段,查询字串,客户端cookies和浏览器环境值比如用户代理字串和IP地址等. <br /><br />  弱输入校验通常为注入攻击提供了机会.下面是常见的利用弱输入校验或无输入校验进行攻击的手段. <br /><br />SQL 注入(SQL injection). 如果你使用用户的输入值来动态构造SQL语句,那么数据库可能执行攻击性的有害SQL语句.  <br /><br />跨站脚本(C

tan0303的专栏 704

2-1 AUTOSAR ASW概述

应用软件层(Application Software Layer,ASW)位于AUTOSAR整个架构的顶层。它由各种AUTOSAR Software Component(SW-C)组成,每个SW-C封装了各种应用的功能集。每个SW-C只能运行在一个ECU中。ASW层的设计目标是实现功能的可重用性和可配置性。它通过封装底层提供的服务,为上层应用层提供统一的接口。ASW层的开发可以基于AUTOSAR提供的标准化软件组件,也可以根据具体需求进行定制开发。

qq_42357877的博客 1904

ASP.NET木马及Webshell安全解决方案

 ASP.NET木马及Webshell安全解决方案Security Fuard Solution Of ASP.NET and Webshell文章简介:本文将为大家介绍在Microsoft Win系列的2003 SERVER IIS6.0中如何简单快速解决ASP.NET中的危险漏洞与隐患对WEB服务器系统的安全威胁之详细防范设置步骤;读完本文,您将可以使您的网站服务器免去ASP.NET木马、

xlh日记本 2842

【24届数字IC秋招总结】正式批面试经验汇总6——禾赛

15、ahb写或者读的数据存储起来了嘛,ahb读的话,apb这边是怎样的。19、覆盖率收集的时候有没有哪些是很难收集到的,然后写了定向测试。2、C++有学过嘛 还记得C++的什么内容 C++成绩多少。12、config_db机制用过嘛 四个参数的含义。8、脚本语言有学过嘛 简单学过 简单是指代码数少嘛。13、run_phase和mian_phase的区别。10、覆盖机制的创建方法 ,是不是覆盖用的很少。6、call_back机制记得哪些细节的东西。9、uvm实战学了哪些章节 印象深刻的章节。

qq_42135020的博客 1085

Sigrity OptimizePI IC Device Power Pin Inductance Analysis模式如何计算IC电源管脚电感操作指导

Sigrity OptimizePI IC Device Power Pin Inductance Analysis模式可以计算电容到IC电源管脚的电感,用于评估电容位置对于IC电源管脚的效果,如何分析,以下图为例进行说明。Capacitors:选择层面,这里选择top layer(IC在top层),下方可以选择电容的size,这里选择All Size。IC devices,输入U*, A*, B*, Q*, P*,将所有这些字母开头的器件都识别为IC。模式如何计算IC电源管脚电感操作指导。

weixin_54787054的博客 410

Asp.net有关访问页面权限的限制和错误页面配置

一、访问页面权限的限制 一个小项目,涉及到用户登录。 在用户没登录访问内容也时,对页面做一定限制,没登录的则不能访问,直接跳转到登录界面。 /// <summary> /// 对没有登录用户,访问需要登录页面做限制 /// 思路:判断Session中是否有userInfo的信息没有则跳转到登录页面 /// 方案:1,自定义一个类,继承Sy...

weixin_34401479的博客 340

vue2/3 - 详细实现内网使用离线百度地图功能,百度地图如何离线加载详细教程(内网部署及使用),在vue中无需网络离线使用百度地图相关功能,提供最新完整的瓦片资源下载及相关工具(示例代码,一键复制

vue,vue2,vue3,百度地图,离线使用百度地图,百度地图瓦片官方下载,vue内网使用百度地图离线无网络,断网情况下使用百度地图,vue离线百度地图教程,如何实现内网部署百度地图,无需联网离线使用,vue+ts实现离线百度地图 内网离线百度地图,如何在百度地图Vue项目中下载离线地图,百度离线地图加载不出来,百度地图离线使用不显示怎么办,怎么解决vue内网使用离线百度地图加载失败问题,vue实现离线地图+百度瓦片,vue引入百度离线地图,vue项目如何使用离线百度地图和自定义地图样式,百度离线地图的下

✅ 精选推荐文章 1万+

WebApi接口安全机制:API接口限流防止恶意访问 ThrottlingHandler消息处理机制

文章介绍 为了防止网站意外暴增的流量比如活动、秒杀、攻击等,导致整个系统瘫痪,在前后端接口服务处进行流量限制是非常有必要的。本篇主要介绍下Net限流框架WebApiThrottle的使用。 WebApiThrottle是一个专门为webApi限制请求频率而设计的,支持寄宿OWIN上的中间件的限制过滤。服务端接口可以基于客户端请求IP地址、客户端请求key、及请求路由去限制w...

ASP.NET 2612

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

一些免费,甚至开源的.net开发工具

  [b] 一些免费,甚至开源的.net开发工具 [/b][b]收藏 [/b]   1、Visual Studio Express 版本:   从2005版本开始,就有这个版本,2008 , 2010都有相应版本。本版本是给程序爱好者,以及学生使用的简易版本。虽然是简易版本,但是基本的功能都有。仅仅缺少一些高级功能:包括代码管理、测试、建模工具等。但是可以通过安装免费插件解决,比如SV...

ocw356og 287

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

一些免费,甚至开源的.net开发工具

1、Visual Studio Express 版本: 从2005版本开始,就有这个版本,2008 , 2010都有相应版本。本版本是给程序爱好者,以及学生使用的简易版本。虽然是简易版本,但是基本的功能都有。仅仅缺少一些高级功能:包括代码管理、测试、建模工具等。但是可以通过安装免费插件解决,比如SVN的.net版本 AnkhSVN , VisualSVN等。2、sharpdevelop SharpDevelop 是一个用于制作C#或

zhj149的专栏 4839

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

IIS发布程序

什么是IIS IIS优劣对比 发布一个简单的系统 发布之后设置系统安全性 发布过程中常常遇见的问题

Scalzdp的专栏 1810

什么是CSRF攻击,如何在ASP.NET MVC网站中阻止这种攻击?

本文介绍什么是CSRF攻击,及如何在ASP.NET MVC网站应用程序中阻止CSRF攻击。

MemoryFraction 1815

在ASP.NET MVC下限制同一个IP地址单位时间间隔内的请求次数

转自:https://www.cnblogs.com/darrenji/p/4446767.html 备注:限制的次数是使用这个过滤器次数的集合,并不是限制单个控制器的次数。

FeiShiH的博客 1363

修改 ASP.NET 请求队列的限制

查询 ASP.NET 时,服务的请求将通过 Internet Information Services (IIS) 和 ASP.NET 工作进程之间的管道来传递,并且在该管道内排队。(ASP.NET 在自己的进程中运行 - 这一点不同于传统的 ASP,传统的 ASP 与 IIS 服务在同一个进程中运行。)默认情况下,此队列最多可以包含 5,000 个请求。如果请求超过 5,000 个,则用户将收...

u014712365的博客 453

ASP.NET中常用的26个优化性能方法

1. 数据库访问性能优化  数据库的连接和关闭  访问数据库资源需要创建连接、打开连接和关闭连接几个操作。这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源。 ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响。系统将用户的数据库连接放在连接池中,需要时取出,关闭时收回连接,等待下一次的连接请求。  连接池的大小是有限的,如果

656

asp.net : 拒绝频繁的IP访问

//首先我们要实现 IHttpModule接口 using System; using System.Collections.Generic; using System.Text; using System.Web; using System.Web.UI; using System.Web.SessionState; using System.Configuration;

albert的专栏 1546

如何防止恶意请求和爬虫访问你的网站?有哪些NGINX模块可以实现这些功能?

要注意,虽然这些NGINX模块和方法可以帮助防止恶意请求和爬虫访问,但恶意行为的多样性和不断变化可能需要综合多种策略来进行有效的防御。使用WAF(Web应用防火墙)和专门的安全解决方案也可以进一步提高网站的安全性。防止恶意请求和爬虫访问你的网站是网站安全的重要方面之一。NGINX提供了一些模块和方法,可以帮助你实现这些功能。

越努力越幸运。 922

今天看到一个有意思的问题:个人网站被恶意大量访问,怎么办(文末附GPT指令优化)

遇到这样的问题,肯定是要制定可行方案并及时止损,我们看GPT怎么回答,根据GPT的回答,我们得到一个信息,那就是GPT会根据你的提问,给出不同的回答,而上面的回答就是偏向于理论型的,还需要加入个人的分析和决策,然后进一步追问,才会得到更精准的答案。

svygh123的专栏 3431
上一篇: RHEL/CentOS6.6SSHD服务安装、配置、使用
下一篇: HybridDB for PG、Greenplum 排序nulls first|last的 SQL写法实现
weixin_34026484
博客等级 码龄11年 4642粉丝 152原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值