php通用防注入sql类.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
php通用防注入sql类

php通用防注入类 ?php /************************* 说明: 判断传递的变量中是否含有非法字符 如$_POST、$_GET 功能: 防注入 注:请自行完善要过滤的非法字符 **************************/ //要过滤的非法字符 $ArrFiltrate=array(,;,union); //出错后要跳转的url,不填则默认前一页 $StrGoUrl=#; //是否存在数组中的值 function FunStringExist($StrFiltrate,$ArrFiltrate){ foreach ($ArrFiltrate as $key=$value){ if (eregi($value,$StrFiltrate)){ return true; } } return false; } //合并$_POST 和 $_GET if(function_exists(array_merge)){ $ArrPostAndGet=array_merge($_POST,$_GET); }else{ foreach($_POST as $key=$value){ $ArrPostAndGet[]=$value; } foreach($_GET as $key=$value){ $ArrPostAndGet[]=$value; } } //验证开始 foreach($ArrPostAndGet as $key=$value){ if (FunStringExist($value,$ArrFiltrate)){ echo script language=javascriptalert(非法字符);/script; if (empty($StrGoUrl)){ echo script language=javascripthistory.go(-1);/script; }else{ echo script language=javascriptwindow.location=.$StrGoUrl.;/script; } exit; } } /** 附注:$HTTP_POST_VARS与$_POST的区别 $HTTP_GET_VARS与$_GET   $HTTP_POST_VARS与$_POST $HTTP_POST_VARS可以用于3.0及以下版本,$HTTP_POST_VARS不是自动全局变量 $_POST只能用于4.0及以上版本中 为了你的代码应用可以更广泛,请写成$HTTP_POST_VARS HTTP POST 变量:$_POST 注: 在 PHP 4.1.0 及以后版本使用。之前的版本,使用 $HTTP_POST_VARS。 通过 HTTP POST 方法传递的变量组成的数组。是自动全局变量。 这是一个“superglobal”,或者可以描述为自动全局变量。这只不过意味这它在所有的脚本中都有效。在函数或方法中您不需要使用 global $_POST; 来访问它,就如同使用 $HTTP_POST_VARS 一样。 $HTTP_POST_VARS 包含着同样的信息,但是不是一个自动全局变量。(注意: HTTP_POST_VARS 和 $_POST 是不同的变量,PHP 处理它们的方式不同。) **/ PHP防注入方法二(以下代码未经测试,请自行按需修改!): 以下是一段copy来的代码: $_POST = sql_injection($_POST); $_GET = sql_injection($_GET); function sql_injection($content) { if (!get_magic_quotes_gpc()) { if (is_array($content)) { foreach ($content as $key=$value) { $content[$key] = addslashes($value); } } else { addslashes($content); } } return $content; } 做系统的话,可以用下面的代码,也是copy来的。接下来做系统的时候,如果有问题,或者有修改的地方,我会补充说明: /* 函数名称:inject_check() 函数作用:检测提交的值是不是含有SQL注射的字符,防止注射,保护服务器安全 参  数:$sql_str: 提交的变量 返 回 值:返回检测结果,ture or false */ function inject_check($sql_str) { return eregi(select|insert|update|delete||/*|*|../|./|union|int

文档评论(0)

80019pp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档