当前位置:Gxlcms > PHP教程 > 简单的php防注入代码

简单的php防注入代码

时间:2021-07-01 10:21:17 帮助过:3人阅读

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。 比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.本篇文章主要两种方法php防注入的方法,首先请把以下代码保存为safe.php放在网站根目录下,然后在每个php文件前加include(“/safe.php“);即可 :

php防注入代码方法一:

  1. <?php
  2. //要过滤的非法字符
  3. $ArrFiltrate=array(”‘”,”;”,”union”);
  4. //出错后要跳转的url,不填则默认前一页
  5. $StrGoUrl=””;
  6. //是否存在数组中的值
  7. function FunStringExist($StrFiltrate,$ArrFiltrate){
  8. foreach ($ArrFiltrate as $key=>$value){
  9. if (eregi($value,$StrFiltrate)){
  10. return true;
  11. }
  12. }
  13. return false;
  14. }
  15. //合并$_POST 和 $_GET
  16. if(function_exists(array_merge)){
  17. $ArrPostAndGet=array_merge($HTTP_POST_VARS,$HTTP_GET_VARS);
  18. }else{
  19. foreach($HTTP_POST_VARS as $key=>$value){
  20. $ArrPostAndGet[]=$value;
  21. }
  22. foreach($HTTP_GET_VARS as $key=>$value){
  23. $ArrPostAndGet[]=$value;
  24. }
  25. }
  26. //验证开始
  27. foreach($ArrPostAndGet as $key=>$value){
  28. if (FunStringExist($value,$ArrFiltrate)){
  29. echo “<script language=\”javascript\”>alert(\”非法字符\”);</script>”;
  30. if (emptyempty($StrGoUrl)){
  31. echo “<script language=\”javascript\”>history.go(-1);</script>”;
  32. }else{
  33. echo “<script language=\”javascript\”>window.location=\””.$StrGoUrl.”\”;</script>”;
  34. }
  35. exit;
  36. }
  37. }
  38. ?>

php防注入代码方法二:

  1. /* 过滤所有GET过来变量 */
  2. foreach ($_GET as $get_key=>$get_var)
  3. {
  4. if (is_numeric($get_var)) {
  5. $get[strtolower($get_key)] = get_int($get_var);
  6. } else {
  7. $get[strtolower($get_key)] = get_str($get_var);
  8. }
  9. }
  10. /* 过滤所有POST过来的变量 */
  11. foreach ($_POST as $post_key=>$post_var)
  12. {
  13. if (is_numeric($post_var)) {
  14. $post[strtolower($post_key)] = get_int($post_var);
  15. } else {
  16. $post[strtolower($post_key)] = get_str($post_var);
  17. }
  18. }
  19. /* 过滤函数 */
  20. //整型过滤函数
  21. function get_int($number)
  22. {
  23. return intval($number);
  24. }
  25. //字符串型过滤函数
  26. function get_str($string)
  27. {
  28. if (!get_magic_quotes_gpc()) {
  29. return addslashes($string);
  30. }
  31. return $string;
  32. }

以上就是简单的php防注入代码的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行