从360安全论坛里找到的一段代码,经过整理封装,直接在站点Global.asax文件或写一个HttpModule来拦截恶意请求即可;

http://bbs.webscan.360.cn/forum.php?mod=viewthread&tid=711&page=1&extra=#pid1927

using System.Text.RegularExpressions;
using System.Web;/// <summary>
/// Web请求安全检查:防止跨站点脚本,Sql注入等攻击,来自:http://bbs.webscan.360.cn/forum.php?mod=viewthread&tid=711&page=1&extra=#pid1927
/// 检查数据包括:
/// 1.Cookie
/// 2.当前页面地址
/// 3.ReferrerUrl
/// 4.Post数据
/// 5.Get数据
/// </summary>
public class Safe360
{#region 执行安全检查/// <summary>/// 执行安全检查/// </summary>public static void Procress(){const string errmsg ="<div style='position:fixed;top:0px;width:100%;height:100%;background-color:white;color:green;font-weight:bold;border-bottom:5px solid #999;'><br>您的提交带有不合法参数,谢谢合作!<br><br>了解更多请点击:<a href='http://webscan.360.cn'>360网站安全检测</a></div>";if (RawUrl()){HttpContext.Current.Response.Write(errmsg);HttpContext.Current.Response.End();}if (CookieData()){HttpContext.Current.Response.Write(errmsg);HttpContext.Current.Response.End();}if (HttpContext.Current.Request.UrlReferrer != null){if (Referer()){HttpContext.Current.Response.Write(errmsg);HttpContext.Current.Response.End();}}if (HttpContext.Current.Request.RequestType.ToUpper() == "POST"){if (PostData()){HttpContext.Current.Response.Write(errmsg);HttpContext.Current.Response.End();}}if (HttpContext.Current.Request.RequestType.ToUpper() == "GET"){if (GetData()){HttpContext.Current.Response.Write(errmsg);HttpContext.Current.Response.End();}}}#endregion#region 安全检查正则/// <summary>/// 安全检查正则/// </summary>private const string StrRegex =@"<[^>]+?style=[\w]+?:expression\(|\b(alert|confirm|prompt)\b|^\+/v(8|9)|<[^>]*?=[^>]*?&#[^>]*?>|\b(and|or)\b.{1,6}?(=|>|<|\bin\b|\blike\b)|/\*.+?\*/|<\s*script\b|<\s*img\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)";#endregion#region 检查Post数据/// <summary>/// 检查Post数据/// </summary>/// <returns></returns>private static bool PostData(){bool result = false;for (int i = 0; i < HttpContext.Current.Request.Form.Count; i++){result = CheckData(HttpContext.Current.Request.Form[i]);if (result){break;}}return result;}#endregion#region 检查Get数据/// <summary>/// 检查Get数据/// </summary>/// <returns></returns>private static bool GetData(){bool result = false;for (int i = 0; i < HttpContext.Current.Request.QueryString.Count; i++){result = CheckData(HttpContext.Current.Request.QueryString[i]);if (result){break;}}return result;}#endregion#region 检查Cookie数据/// <summary>/// 检查Cookie数据/// </summary>/// <returns></returns>private static bool CookieData(){bool result = false;for (int i = 0; i < HttpContext.Current.Request.Cookies.Count; i++){result = CheckData(HttpContext.Current.Request.Cookies[i].Value.ToLower());if (result){break;}}return result;}#endregion#region 检查Referer/// <summary>/// 检查Referer/// </summary>/// <returns></returns>private static bool Referer(){return CheckData(HttpContext.Current.Request.UrlReferrer.ToString());}#endregion#region 检查当前请求路径/// <summary>/// 检查当前请求路径/// </summary>/// <returns></returns>private static bool RawUrl(){return CheckData(HttpContext.Current.Request.RawUrl);}#endregion#region 正则匹配/// <summary>/// 正则匹配/// </summary>/// <param name="inputData"></param>/// <returns></returns>private static bool CheckData(string inputData){return Regex.IsMatch(inputData, StrRegex);}#endregion
}

在Global.asax里调用的代码:

private void Application_BeginRequest(object sender, EventArgs e)
    {
        Safe360.Procress();

}

转载于:https://www.cnblogs.com/zhangqs008/p/3677099.html

网站跨站点脚本,Sql注入等攻击的处理相关推荐

  1. 防止跨站点脚本注入_防止跨站点脚本攻击

    防止跨站点脚本注入 大多数现有的浏览器都能够解释和执行脚本,这些脚本以诸如JavaScript,JScript,VBScript之类的脚本语言创建,并嵌入在从Web服务器下载的网页中. 当攻击者将恶意 ...

  2. 【burpsuite安全练兵场-客户端11】跨站点脚本XSS-20个实验(上)

    前言: 介绍: 博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章). 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edus ...

  3. 跨站点脚本(xss)_跨站点脚本(XSS)和预防

    跨站点脚本(xss) 如OWASP网站(https://www.owasp.org/index.php/Cross-site_Scripting_(XSS))所述,跨站点脚本(XSS)攻击的变种几乎是 ...

  4. 跨站点脚本(XSS)和预防

    如OWASP网站(https://www.owasp.org/index.php/Cross-site_Scripting_(XSS))所述,跨站点脚本(XSS)攻击的变种几乎是无限的. 在这里,我建 ...

  5. 如何修复会话固定漏洞_PHP安全漏洞:会话劫持,跨站点脚本,SQL注入以及如何修复它们...

    如何修复会话固定漏洞 PHP中的安全性 (Security in PHP) When writing PHP code it is very important to keep the followi ...

  6. 使用过滤器解决SQL注入和跨站点脚本编制

    1 SQL注入.盲注 1.1 SQL注入.盲注概述 Web 应用程序通常在后端使用数据库,以与企业数据仓库交互.查询数据库事实上的标准语言是 SQL(各大数据库供应商都有自己的不同版本).Web 应用 ...

  7. ASP.NET Core中的OWASP Top 10 十大风险-跨站点脚本攻击 (XSS)

    本博文翻译自: https://dotnetcoretutorials.com/2017/10/25/owasp-top-10-asp-net-core-cross-site-scripting-xs ...

  8. 如何防止跨站点脚本 (XSS) 攻击完整指南

    跨站点脚本 (XSS) 攻击的完整指南.如何防止它以及 XSS 测试. 跨站点脚本 (XSS) 是每个高级测试人员都知道的最流行和易受攻击的攻击之一.它被认为是对 Web 应用程序最危险的攻击之一,也 ...

  9. 记录如何防止跨站点脚本攻击之抄写

    一.简介 跨站点脚本(XSS)是当前web应用中最危险和最普遍的漏洞之一.安全研究人员在大部分最受欢迎的网站,包括Google, Facebook, Amazon, PayPal等网站都发现这个漏洞. ...

  10. 如何防止跨站点脚本攻击

    1. 简介 跨站点脚本(XSS)是当前web应用中最危险和最普遍的漏洞之一.安全研究人员在大部分最受欢迎的网站,包括Google, Facebook, Amazon, PayPal等网站都发现这个漏洞 ...

最新文章

  1. python word转pdf
  2. Hadoop(十二):从源码角度分析Hadoo是如何将作业提交给集群的
  3. android开发字体样式,Android开发中修改程序字体的样式
  4. MySql 查询同一字段多个结果合并到一行显示 GROUP_CONCAT
  5. SAP UI5 初学者教程之二十八 - SAP UI5 应用的集成测试工具 OPA 介绍试读版
  6. 【Comet OJ - Contest #5 - C】迫真小游戏(优先队列,贪心构造,树,字典序)
  7. XNA中的Render State管理
  8. RS 学习笔记 3-1
  9. B 站疯传!P8技术大佬分享了20个免费Java课程,白拿不谢!!
  10. java cas并发_java并发之CAS
  11. 物联网正在面临的 9 大安全挑战!
  12. 智能平台管理接口 (IPMI)
  13. 基于Axis1.4的webservice接口开发(环境搭建)
  14. 常用接口文档模板(markdown版)
  15. javaweb JAVA JSP智能社区管理系统JSP小区物业管理系统物JSP小区管理系统源码 JSP物业社区管理系统
  16. 智能名片小程序名片详情页功能实现关键代码
  17. “反悔”贪心 烤鸡翅
  18. ubuntu命令行使用wget下载百度云资源
  19. 西门子1200与台达MS300变频器通讯程序
  20. 小型水库水雨情监测预警自动测报平台 辅助水利在线监测水库水位+雨量

热门文章

  1. [C++]C++连接MySQL,封装为class(兼容x86和x64)
  2. Linux的history命令
  3. OC中关于NSDate详解及获取当前时间等常用操作
  4. 由php nginx 出现 500错误的启示
  5. Redmine管理项目1-自定义属性
  6. 【翻译】Windows下文件的命名
  7. 一篇极好的 CSS 教程 (ZZ)
  8. 升级 Node.js 版本遇到的 co 和 pm2 问题解析
  9. 俄文化部长称Netflix是美国文化侵掠的工具,将占领每台电视机
  10. 会装64位solaris jdk1.6吗?