SQL注入与JS攻击防范

asp.net防SQL/JS注入攻击:过滤标记 /// /// 过滤标记/// /// 包括HTML,脚本数据库关键字,特殊字符的源码 /// 已经去除标记后的文字public static string NoHTML(string Htmlstring){if (Htmlstring == null){return "";}else{//删除脚本Htmlstring = Regex.Replace(Htmlstring, @"]*?>.*? 阅读详情

/// <summary>
/// 过滤标记
/// </summary>
/// <param name="NoHTML">包括HTML,脚本,数据库关键字,特殊字符的源码 </param>
/// <returns>已经去除标记后的文字</returns>
public static string NoHTML(string Htmlstring)
{
if (Htmlstring == null)
{
return "";
}
else
{
//删除脚本
Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);
//删除HTML
Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"([/r/n])[/s]+", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);

Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "/"", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "/xa1", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "/xa2", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "/xa3", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "/xa9", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&#(/d+);", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "xp_cmdshell", "", RegexOptions.IgnoreCase);

//删除与数据库相关的词
Htmlstring = Regex.Replace(Htmlstring, "select", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "insert", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "delete from", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "count''", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "drop table", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "truncate", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "asc", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "mid", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "char", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "xp_cmdshell", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "exec master", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "net localgroup administrators", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "and", "", RegexOptions.IgnoreCase);


return Htmlstring ;

      }

}
--------------------------------------------------------------------------------------------

using System;    
   
using System.Collections.Generic;    
   
using System.Text;    
   
   
   
namespace LBC.KeywordFilter    
   
{    
   
    /// <summary>    
   
    /// 过滤关键字    
   
    /// </summary>    
   
    public class KeywordFilter    
   
    {    
   
        /// <summary>    
   
        /// 检测是否含有危险字符(防止Sql注入)    
   
        /// </summary>    
   
        /// <param name="contents">预检测的内容</param>    
   
        /// <returns>返回True或false</returns>    
   
        public static bool HasKeywords(string contents)    
   
        {    
   
            bool bReturnValue = false;    
   
            if (contents.Length > 0)    
   
            {    
   
                string sLowerStr = contents.ToLower();    
   
                string sRxStr = @"(/sand/s)|(/sand/s)|(/slike/s)|(select/s)|(insert/s)|(delete/s)|(update/s[/s/S].*/sset)|(create/s)|(/stable)|(<[iframe|/iframe|script|/script])|(')|(/sexec)|(declare)|(/struncate)|(/smaster)|(/sbackup)|(/smid)|(/scount)|(cast)|(%)|(/sadd/s)|(/salter/s)|(/sdrop/s)|(/sfrom/s)|(/struncate/s)|(/sxp_cmdshell/s)";                //Match    
   
                System.Text.RegularExpressions.Regex sRx = new System.Text.RegularExpressions.Regex(sRxStr);    
   
                bReturnValue = sRx.IsMatch(sLowerStr, 0);    
   
            }    
   
            return bReturnValue;    
   
        }             
   
    }    
   
}

在ASP.NET MVC应用程序中防止JavaScript注入攻击 在本文中,我们将探讨如何在ASP.NET MVC应用程序中有效地防范JavaScript注入攻击的问题。   1、简介   在本文中,你将了解到JavaScript注入攻击远比你可能想象的那样严重。首先,我会向你展示如何使用一个JavaScript注入攻击对一个ASP.NET MVC网站进行恶意操作,然后,我会向你解释如何使用一种很容易的方式来阻止这一类型的攻击。   当你从一个你的 阅读详情

相关推荐

XSS漏洞之js脚本攻击

XSS攻击之对前端脚本做校验

Decadent丶沉沦の博客 1908

JavaScript数据安全实战!攻击防范

最近虽说到了考试周了,但还是忍不住会编一些程序,最近再看《JavaScript王者归来》一书,以前我就知道JavaScript这门语言十分的神奇,虽说直接用jquery来做应用比较简单,但是想完完整整了解这个语言的特性我还是差的太远了,不废话了,推荐大家都看看这本书。 利用JavaScript的常见攻击有以下几种: 1.伪造表单提交目的地,从而窃取数据 解释:HTML表单的提交由form的a

Keep writing codes 1657

浅谈javascript注入攻击

前言 记录一次防止js注入的项目经历,起因,项目在测试过程中,发现可能存在注入可能,于是拿到代码开始查看,因为现在前后端分离的情况下,需要特殊处理避免XSS攻击(跨站脚本攻击)的情况已经很少了,所以这次情况引起了我的兴趣。 介绍 什么是javascript注入攻击?简单来说,就是页面上输入的内容中带有可执行的javascript,而你使用这段输入内容的时候,让这段用户提供的代码执行了,也就是你写的代码,执行了非你写的代码,就会导致网页的不可行乃至更严重的安全威胁。 传统页面的服务端渲染 因为传统页面基本都是

qq_41914181的博客 1万+

php js 注入攻击,JavaScript_防范sql注入攻击js版本,SQL注入攻击是利用是指利用 - phpStudy...

防范sql注入攻击js版本SQL注入攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。比如:如果你的查询语句是select * from admin where username=''"&user&"'' and password=''"&pwd&"'...

weixin_42403922的博客 197

sql注入防范sql注入攻击js版本

SQL注入攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。 比如: 如果你的查询语句是select * from admin where username=''"&user&"'' and password=''"&pwd&"''" 那么,如果我的用户名是:1'' or ''1''=

暗淡亮点的博客 1293

防范sql注入攻击js版本

 SQL注入攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击 动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。 比如: 如果你的查询语句是select * from admin where username="&user&" and password="&pwd&"" 那么,如果我的用户名是:1 or

382

防范SQL注入攻击JS版本

SQL注入攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击 动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。 比如: 如果你的查询语句是select * from admin where username="&user&" and password="&pwd&"" 那么,如果我的用户名是:1 or 1

298

node JS 中安全和防范sql 注入、XSS攻击 和 密码加密

一、安全 对于安全,如下所示: sql 注入:窃取数据库内容 XSS 攻击:窃取前端的 cookie 内容 密码加密:保障用户信息安全 server 端攻击方式非常多,预防手段也非常多 nodejs 可以通过 web server 层面预防 有些攻击需要硬件和服务来支持,需要 OP 支持,如 DDOS 二、sql 注入 sql 注入,如下所示: 最原始、最简单的攻击,从有了 web2.0 就有了 sql 注入攻击 攻击方式:输入一个 sql 片段,最终拼接成一段攻击代码 预防措施:使用 MyS

浮生离梦的博客 1735

js版的防范SQL注入攻击代码

[CODE START]    var url = location.search; var re=/^/?(.*)(select%20|insert%20|delete%20from%20|count/(|drop%20table|update%20truncate%20|asc/(|mid/(|char/(|xp_cmdshell|exec%20master|net%20localgroup%

tlucia的专栏 887

js+asp版的防范SQL注入攻击代码

On Error Resume NextDim strTempIf LCase(Request.ServerVariables("HTTPS")) = "off" ThenstrTemp = "http://"; ElsestrTemp = "https://"End IfstrTemp = strTemp & Request.ServerVariables("SERVER_NAME")I

雪候鸟 1004

防范SQL注入攻击

防范SQL注入攻击 JARON_DOT_CN 2004年4月27日 阅读:461次  SQL注入攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。比如: 如果你的查询语句是select * from admin where username="&user&" an

wangxd的专栏 893

防范SQL注入攻击的代码

SQL注入攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击,动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。比如:  如果你的查询语句是select * from admin where username="&user&" and password="&pwd&""   那么,如果我的用户名是:1 or 1=1  

hzbairly的专栏 1029
上一篇: char、varchar、nchar、nvarchar的区别
下一篇: i++,++i的困扰
mark4ever
博客等级 码龄17年 31粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值