/// <summary> Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "/"", RegexOptions.IgnoreCase); //删除与数据库相关的词 } } using System;
/// 过滤标记
/// </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, @"&(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.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;
}
}
}
相关推荐
XSS漏洞之js脚本攻击
XSS攻击之对前端脚本做校验
JavaScript数据安全实战!攻击与防范
最近虽说到了考试周了,但还是忍不住会编一些程序,最近再看《JavaScript王者归来》一书,以前我就知道JavaScript这门语言十分的神奇,虽说直接用jquery来做应用比较简单,但是想完完整整了解这个语言的特性我还是差的太远了,不废话了,推荐大家都看看这本书。 利用JavaScript的常见攻击有以下几种: 1.伪造表单提交目的地,从而窃取数据 解释:HTML表单的提交由form的a
浅谈javascript注入攻击
前言 记录一次防止js注入的项目经历,起因,项目在测试过程中,发现可能存在注入可能,于是拿到代码开始查看,因为现在前后端分离的情况下,需要特殊处理避免XSS攻击(跨站脚本攻击)的情况已经很少了,所以这次情况引起了我的兴趣。 介绍 什么是javascript注入攻击?简单来说,就是页面上输入的内容中带有可执行的javascript,而你使用这段输入内容的时候,让这段用户提供的代码执行了,也就是你写的代码,执行了非你写的代码,就会导致网页的不可行乃至更严重的安全威胁。 传统页面的服务端渲染 因为传统页面基本都是
php js 注入攻击,JavaScript_防范sql注入式攻击js版本,SQL注入式攻击是利用是指利用 - phpStudy...
防范sql注入式攻击js版本SQL注入式攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。比如:如果你的查询语句是select * from admin where username=''"&user&"'' and password=''"&pwd&"'...
sql防注入防范sql注入式攻击js版本
SQL注入式攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。 比如: 如果你的查询语句是select * from admin where username=''"&user&"'' and password=''"&pwd&"''" 那么,如果我的用户名是:1'' or ''1''=
防范sql注入式攻击js版本
SQL注入式攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击 动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。 比如: 如果你的查询语句是select * from admin where username="&user&" and password="&pwd&"" 那么,如果我的用户名是:1 or
防范SQL注入式攻击JS版本
SQL注入式攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击 动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。 比如: 如果你的查询语句是select * from admin where username="&user&" and password="&pwd&"" 那么,如果我的用户名是:1 or 1
node JS 中安全和防范之 sql 注入、XSS攻击 和 密码加密
一、安全 对于安全,如下所示: sql 注入:窃取数据库内容 XSS 攻击:窃取前端的 cookie 内容 密码加密:保障用户信息安全 server 端攻击方式非常多,预防手段也非常多 nodejs 可以通过 web server 层面预防 有些攻击需要硬件和服务来支持,需要 OP 支持,如 DDOS 二、sql 注入 sql 注入,如下所示: 最原始、最简单的攻击,从有了 web2.0 就有了 sql 注入攻击 攻击方式:输入一个 sql 片段,最终拼接成一段攻击代码 预防措施:使用 MyS
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%
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
防范SQL注入式攻击
防范SQL注入式攻击 JARON_DOT_CN 2004年4月27日 阅读:461次 SQL注入式攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。比如: 如果你的查询语句是select * from admin where username="&user&" an
防范SQL注入攻击的代码
SQL注入式攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击,动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。比如: 如果你的查询语句是select * from admin where username="&user&" and password="&pwd&"" 那么,如果我的用户名是:1 or 1=1
1908




被折叠的 条评论
为什么被折叠?



