//Global.asax里面插入代码
<%@ Application Language="C#" %><script runat="server">void Application_Start(object sender, EventArgs e){//在应用程序启动时运行的代码}void Application_End(object sender, EventArgs e){//在应用程序关闭时运行的代码}void Application_Error(object sender, EventArgs e){//在出现未处理的错误时运行的代码}void Session_Start(object sender, EventArgs e){//在新会话启动时运行的代码}void Session_End(object sender, EventArgs e){//在会话结束时运行的代码。 // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为// InProc 时,才会引发 Session_End 事件。如果会话模式 //设置为 StateServer 或 SQLServer,则不会引发该事件。WebContel_damu m_delsession = new WebContel_damu();m_delsession.CheckLogin_del(Session["user"].ToString());}void Application_BeginRequest(object sender, EventArgs e){string q = "<div style='color:blue;font-weight:bold'><br>您提交的参数不合法,请确认后再次提交!</div>";if (Request.Cookies != null){if (Nvs_Net_Safe.CookieData()){Response.Write(q);Response.End();}}if (Request.UrlReferrer != null){if (Nvs_Net_Safe.referer()){Response.Write(q);Response.End();}}if (Request.RequestType.ToUpper() == "POST"){if (Nvs_Net_Safe.PostData()){Response.Write(q);Response.End();}}if (Request.RequestType.ToUpper() == "GET"){if (Nvs_Net_Safe.GetData()){Response.Write(q);Response.End();}}}</script>
//Nvs_Net_Safe类里面插入代码
using System;
using System.Web;
using System.Text;
using System.Text.RegularExpressions;
public class Nvs_Net_Safe
{// private const string StrRegex = @"\b(and|or)\b.{1,6}?(=|>|<|\bin\b|\blike\b)|/\*.+?\*/|<\s*script\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)";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)";public static bool PostData(){bool result = false;for (int i = 0; i < HttpContext.Current.Request.Form.Count; i++){result = CheckData(HttpContext.Current.Request.Form[i].ToString());if (result){break;}}return result;}public static bool GetData(){bool result = false;for (int i = 0; i < HttpContext.Current.Request.QueryString.Count; i++){result = CheckData(HttpContext.Current.Request.QueryString[i].ToString());if (result){break;}}return result;}public 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;}public static bool referer(){bool result = false;return result = CheckData(HttpContext.Current.Request.UrlReferrer.ToString());}public static bool CheckData(string inputData){if (Regex.IsMatch(inputData, StrRegex)){return true;}else{return false;}}}

C#跨站脚本防注入SXX相关推荐

  1. guestbook.php注入,php防注入留言板(simple)

    新手学php,试手案例便是留言板.以前未连接数据库时,我是直接将用户输入的留言写入到一个txt,然后再从txt读取显示(~.~别鄙视). 最近学习了php访问MySQL数据库的一些知识,重写了一下留言 ...

  2. PDO防注入原理分析以及使用PDO的注意事项 (转)

    我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下两个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特 ...

  3. [转]PDO防注入原理分析以及使用PDO的注意事项

    原文:http://zhangxugg-163-com.iteye.com/blog/1835721 好文章不得不转. 我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答 ...

  4. SQL防注入程序 v1.0

    /// ***************C#版SQL防注入程序 v1.0************ /// *使用方法: /// 一.整站防注入(推荐) /// 在Global.asax.cs中查找App ...

  5. ASP绕过防注入的新思路

    要想绕过防注入,就要打碎关键字.假如有类似这么一段防注入代码: <% id=request("id") id=replace(id,"and"," ...

  6. ASP。NET 中SQL防注入攻击

    一.什么是SQL注入式攻击 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令.在某些表单中,用户输入的内容直接用来构造(或者影 ...

  7. php注入类,简单实用的PHP防注入类实例

    这篇文章主要介绍了简单实用的PHP防注入类实例,以两个简单的防注入类为例介绍了PHP防注入的原理与技巧,对网站安全建设来说非常具有实用价值,需要的朋友可以参考下 本文实例讲述了简单实用的PHP防注入类 ...

  8. 万能写入sql语句,并且防注入

    通过perpare()方法和检查字段防sql注入. $pdo=new PDO('mysql:host=localhost;dbname=scms', 'root' ); $_POST=array('t ...

  9. mysql防注入 php_PHP使用PDO实现mysql防注入功能详解

    本文实例讲述了PHP使用PDO实现mysql防注入功能.分享给大家供大家参考,具体如下: 1.什么是注入攻击 例如下例: 前端有个提交表格: 姓名: 密码: 后台的处理如下: $username=$_ ...

最新文章

  1. 新机器学习库TensorFlow Privacy问世:旨在保护敏感数据
  2. rsync 常用命令及格式
  3. java并发Exchanger的使用
  4. 设置第三方的SMTP服务
  5. proteus里面没有stm32怎么办_嵌入式单片机之stm32串口你懂了多少!!
  6. Security中常见的权限控制方式
  7. 【Ubuntu引导】EFI系统分区.删除不掉,也不能格式化,如何粘力删除 efi 隐藏分区
  8. Visual Studio 2008创建项目(ATL)
  9. IT人 不要一辈子靠技术生存(转
  10. PHP二维数组按照指定的字段排序的函数
  11. Android 学习之Fragment的创建
  12. PHP+node采集58微聊聊天信息
  13. python数学符号表示方法_用Python学数学之Sympy代数符号运算
  14. 怎么改java游戏_jar游戏按键修改,怎么修改jar游戏按键
  15. 【NovelAI】在QQ群中部署AI画图机器人
  16. 高分三号卫星GF-3极化SAR
  17. codesys 实现冒泡排序
  18. 多 “维” 优化——前端高并发策略的更深层思考
  19. Red Hat Enterprise Linux9 + Zabbix 6.2.3 + Grafana 9.2.0
  20. Log Parser 2.2 + Log Parser Lizard GUI 分析IIS日志示例

热门文章

  1. 【JAVA】保龄球记分游戏
  2. Androidstudio_Plugs
  3. 阿里云Centos8.2执行 yum install -y yum-utils 报错问题解决
  4. Java在eclipse中调用opencv时报错:java.lang.UnsatisfiedLinkError的解决方法
  5. Discuz! Q 常见问题 QA
  6. 【翻译】Inside Visual C++ Wizards
  7. ubuntu20环境搭建+Qt6安装
  8. 万门大学PPT课程(一)1.1、1.2、1.3、1.4
  9. castle典范英语 storm_典范英语4阶 17 castle adventure(点读)
  10. 数据链路层的三个基本问题