关于SQL注入防御函数

函数

刚刚在最爱白菜那里看到了一个SQL注入防御的函数,突然想起以前看到这些文章时的一直有个问题想不通的,我对于SQL注入的防御很简单,就以下两个函数:

'####
'##
'## SQL注入攻击预防装置[字符型]
'##
'## @ data ->处理的数据
'## @ length ->长度限制
'##
'## 例: strSql("SQL字符型数据",50)
'##
function strSql(data,length)
'########################################################################
if length<>0 then data=left(data,length)
strSql="'"&replace(data,"'","''")&"'"
end function

'####
'##
'## SQL注入攻击预防装置[数字型]
'##
'## @ numeric ->数字
'##
'## 例: intSql(50)
'##
'## 2004/03/04,改良版,原因:IsNumeric检测MSSQL数据类型时会误判。
'##
function intSql(Numeric)
'########################################################################
dim MM_intTemp
On Error Resume Next
if Numeric="" then Numeric=0
MM_intTemp=csng(Numeric)
if err=0 then
intSql=Numeric
else
intSql=0
end if
end function

strSQL的length不在防御SQL注入的范围中,是我为了防止插入字符超过字段长度而出错作的一个小小的防御。
我在网上看到各式各样的SQL注入防御函数,所以很好奇,这样的函数不能防御注入吗?谁知道这两个函数的漏洞请告诉我。

时间: 2024-10-26 05:58:23

关于SQL注入防御函数的相关文章

SQL注入防御与绕过的几种姿势

前言 本文章主要以后端PHP和MySQL数据库为例,参考了多篇文章后的集合性文章,欢迎大家提出个人见解,互促成长. 一. PHP几种防御姿势 1. 关闭错误提示 说明: PHP配置文件php.ini中的display_errors=Off,这样就关闭了错误提示. 2. 魔术引号 说明: 当php.ini里的magic_quotes_gpc=On时.提交的变量中所有的单引号(').双引号(").反斜线(\)与 NUL(NULL 字符)会自动转为含有反斜线的转义字符. 魔术引号(Magic Quot

php自带的几个防止sql注入的函数

  SQL注入攻击是黑客攻击网站最常用的手段.如果你的站点没有使用严格的用户输入检验,那么常容易遭到SQL注入攻击.SQL注入攻击通常通过给站点数据库提交不良的数据或查询语句来实现,很可能使数据库中的纪录遭到暴露,更改或被删除. 为了防止SQL注入攻击,PHP自带一个功能可以对输入的字符串进行处理,可以在较底层对输入进行安全上的初步处理,也即Magic Quotes.(php.ini magic_quotes_gpc).默认情况下开启,如果magic_quotes_gpc选项启用,那么输入的字符

SQL注入常用函数

 有SQL语言基础的人,在SQL注入的时候成功率比不熟悉的人高很多.我们有必要提高一下自己的SQL水平,特别是一些常用的函数及命令. Access:asc(字符) SQLServer:unicode(字符) 作用:返回某字符的ASCII码 Access:chr(数字) SQLServer:nchar(数字) 作用:与asc相反,根据ASCII码返回字符 Access:mid(字符串,N,L) SQLServer:substring(字符串,N,L) 作用:返回字符串从N个字符起长度为L的子字符串

防止SQL注入的函数。

函数 作者:Loster(OICQ:181306) [如果转载,请勿删除此信息,谢谢] '函数名:S_Request() '辅助函数:R_Reader() '作用:过滤非法字符,防止SQL注入. '参数:S_Str:被传入的变量的名,类型:字符串 '返回值:过滤后的值. '*************************************************************************** Const C_SqlStr="',count,user,User,Cou

php防止sql注入的函数介绍

  具体用法 addslashes防止SQL注入 虽然国内很多PHP程序员仍在依靠addslashes防止SQL注入,还是建议大家加强中文防止SQL注入的检查.addslashes的问题在 于黑客 可以用0xbf27来代替单引号,而addslashes只是将0xbf27修改为0xbf5c27,成为一个有效的多字节字符,其中的0xbf5c仍会 被看作是单引号,所以addslashes无法成功拦截. 当然addslashes也不是毫无用处,它是用于单字节字符串的处理,多字节字符还是用mysql_re

简单的js防止SQL注入的函数

SQL注入攻击的总体思路: 发现SQL注入位置:判断服务器类型和后台数据库类型:确定可执行情况 对于有些攻击者而言,一般会采取sql注入法.下面我也谈一下自己关于sql注入法的感悟. 注入法: 从理论上说,认证网页中会有型如: select * from admin where username='XXX' and password='YYY' 的语句,若在正式运行此句之前,如果没有进行必要的字符过滤,则很容易实施SQL注入. 如在用户名文本框内输入:abc' or 1=1– 在密码框内输入:1

php用户自定过滤非法sql注入字符串函数

 代码如下 复制代码 function uc_addslashes($string, $force = 0, $strip = false) {  !defined('magic_quotes_gpc') && define('magic_quotes_gpc', get_magic_quotes_gpc());  if(!magic_quotes_gpc || $force) {   if(is_array($string)) {    foreach($string as $key =

防御SQL注入的方法总结

SQL 注入是一类危害极大的攻击形式.虽然危害很大,但是防御却远远没有XSS那么困难. SQL 注入可以参见:https://en.wikipedia.org/wiki/SQL_injection SQL 注入漏洞存在的原因,就是拼接 SQL 参数.也就是将用于输入的查询参数,直接拼接在 SQL 语句中,导致了SQL 注入漏洞. 1. 演示下经典的SQL注入 我们看到:select id,no from user where id=2; 如果该语句是通过sql字符串拼接得到的,比如: Strin

discuz的php防止sql注入函数_php技巧

最近在做一个主题投票网站,客户懂一些程序方面的东西.有特别要求需要过滤一些字符防止sql注入.本来这方面就没有特别的研究过.呵呵,又发扬了一回拿来主义.把discuz论坛的sql防注入函数取了来! 复制代码 代码如下: $magic_quotes_gpc = get_magic_quotes_gpc(); @extract(daddslashes($_COOKIE)); @extract(daddslashes($_POST)); @extract(daddslashes($_GET)); if