风讯官方论坛FoosunCMS交流区Foosun4.x安装使用★★★NoSqlHack防注入函数改良,大家给点意见!

1  /  1  页   1 跳转 查看:357

标题: ★★★NoSqlHack防注入函数改良,大家给点意见!

★★★NoSqlHack防注入函数改良,大家给点意见!

Function NoSqlHack(inputStr)
    'awen modified
    '通过构造常用必备SQL语句来达到较为准确的过滤而非见到select update insert 就拦截,而真正想拦截的却拦截不掉。
    '为此我觉得应该把常见的必须的SQL语句针对性过滤 可防范 insert%0D%0A%0D%0Ainto%20FS_MF_Admin%20(Admin_Name,    Admin_Pass_Word)
    'values(0x6F006C006400630061006900,0x3800330061006100340030003000610066003400360034006300370036006400)-- 这类高级注入
    '其实很简单,主要用到的正则表达有 非空白字符\S 空白字符\s +至少一个以上 *可有可无 ?碰到后面的字符串立即停止
    '如:insert into FS_ME_Users(a,b,c)values(1,2,3) 或 insert into FS_ME_Users values(1,2,3)
    '替换后为 insert(\s+)into(\s+)\S+([\s\S]+?)values\(([\s\S]+?)\)|
    Dim regEx, HackStr
    Set regEx = New RegExp
    regEx.IgnoreCase = True
    regEx.Global = False
    HackStr =             "insert(\s+)into(\s+)\S+([\s\S]+?)values\s*\(([\s\S]+?)\)|"
    HackStr = HackStr & "update(\s+\S+?\s+)set(\s+\S+?\s*)=|"
    HackStr = HackStr & "delete([\s\S]+?)from(\s+\S+)|"
    HackStr = HackStr & "select(\s+\S+?\s+)from(\s+\S+)|"
    HackStr = HackStr & "and(\s+\S+?\s*)[=<>]|or(\s+\S+?\s*)[=<>]|"
    HackStr = HackStr & "(execute|exec|eval|drop|create|backup|select)(\s*\S+)|'"
   
    regEx.Pattern = HackStr
    If regEx.test(inputStr) Then
        Response.Write "<html><title>警告</title><body bgcolor=""EEEEEE"" leftmargin=""60"" topmargin=""30""><font style=""font-size:16px;font-weight:bolder;color:blue;""><li>您提交的数据有恶意字符</li></font><font style=""font-size:14px;font-weight:bolder;color:red;""><br><li>提交的内容怀疑有SQL注入!</li><li>您的数据已经被记录!</li><br><li>您的IP:" & Request.ServerVariables("Remote_Addr") & "</li><br><li>操作日期:" & Now & "</li></font></body></html><!--Powered by CzFx.Cn,AddTime:" & Now & "-->"
        Response.End
        'FX_inputStr=regEx.replace(FX_inputStr,"")
    End If
    Set regEx = Nothing
    NoSqlHack = inputStr
End Function

Function NoHtmlHackInput(inputStr)
    'awen modified 过滤跨站脚本和HTML标签
    Dim regEx, HackStr
    Set regEx = New RegExp
    regEx.IgnoreCase = True
    regEx.Global = True
    HackStr = "((<|<)(script|iframe|frame)[^>]*(>|>))|on[\w]+|(execute|eval|exec) *\(?"
    regEx.Pattern = HackStr
    NoHtmlHackInput = regEx.Replace(inputStr, "")
    Set regEx = Nothing
End Function
引用
 

回复:★★★NoSqlHack防注入函数改良,大家给点意见!

另外最近加强了自定义字段的功能,可按自定字段搜索。
早前,程序组件封装,需硬盘序列号授权。所以即使被黑客拿了程序也无所谓了。呵呵。核心部分全封装起来了。拿去也用不了。
引用
 

回复:★★★NoSqlHack防注入函数改良,大家给点意见!

不错。不过封装的话,自己有服务器才行。
承接整站开发、风讯程序修改、功能定制、插件制作、系统整合、标签制作、网站升级……
技术为本,信誉至上! 定制QQ:83862966
部分修改案例
引用
 

回复:★★★NoSqlHack防注入函数改良,大家给点意见!

一般我们客户都有服务器,低端的我们没做。偶尔没服务器的,我们给他提供服务器。用组件。
引用
 

回复:★★★NoSqlHack防注入函数改良,大家给点意见!

楼主
好东西就是要大家分享下/
引用
 
1  /  1  页   1 跳转

版权所有 Foosun.NET  NewsCMS.com  NewsIDC.COM  Sitemap

Powered by Discuz!NT 2.0.1115    Copyright © 2001-2008 Comsenz Inc.
Processed in 0 second(s) (Cached).
返顶部