Rumah >pembangunan bahagian belakang >tutorial php >php防止sql注入的代码

php防止sql注入的代码

WBOY
WBOYasal
2016-07-25 09:03:441084semak imbas
  1. /*************************

  2. 说明:
  3. 判断传递的变量中是否含有非法字符
  4. 如$_POST、$_GET
  5. 功能:防注入
  6. **************************/
  7. //要过滤的非法字符

  8. $ArrFiltrate=array("'",";","union");
  9. //出错后要跳转的url,不填则默认前一页
  10. $StrGoUrl="";
  11. //是否存在数组中的值
  12. function FunStringExist($StrFiltrate,$ArrFiltrate){
  13. foreach ($ArrFiltrate as $key=>$value){
  14. if (eregi($value,$StrFiltrate)){
  15. return true;
  16. }
  17. }
  18. return false;
  19. }
  20. //合并$_POST 和 $_GET

  21. if(function_exists(array_merge)){
  22. $ArrPostAndGet=array_merge($HTTP_POST_VARS,$HTTP_GET_VARS);
  23. }else{
  24. foreach($HTTP_POST_VARS as $key=>$value){
  25. $ArrPostAndGet[]=$value;
  26. }
  27. foreach($HTTP_GET_VARS as $key=>$value){
  28. $ArrPostAndGet[]=$value;
  29. }
  30. }
  31. //验证开始

  32. foreach($ArrPostAndGet as $key=>$value){
  33. if (FunStringExist($value,$ArrFiltrate)){
  34. echo "";
  35. if (emptyempty($StrGoUrl)){
  36. echo "";
  37. }else{
  38. echo "";
  39. }
  40. exit;
  41. }
  42. }
  43. ?>
复制代码

保存为 checkpostandget.php,然后在每个php文件前加include(“checkpostandget.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. }
  33. ?>
复制代码


Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn