>  기사  >  백엔드 개발  >  SQL 주입 취약점을 방지하는 데 매우 유용한 PHP 필터링 함수 코드

SQL 주입 취약점을 방지하는 데 매우 유용한 PHP 필터링 함수 코드

WBOY
WBOY원래의
2016-07-25 09:03:421222검색
  1. //PHP整站防注入程序,需要在公共文件中require_once本文件
  2. //判断magic_quotes_gpc状态
  3. if (@get_magic_quotes_gpc ()) {
  4. $_GET = sec ( $_GET );
  5. $_POST = sec ( $_POST );
  6. $_COOKIE = sec ( $_COOKIE );
  7. $_FILES = sec ( $_FILES );
  8. }
  9. $_SERVER = sec ( $_SERVER );
  10. function sec(&$array) {
  11. //如果是数组,遍历数组,递归调用
  12. if (is_array ( $array )) {
  13. foreach ( $array as $k => $v ) {
  14. $array [$k] = sec ( $v );
  15. }
  16. } else if (is_string ( $array )) {
  17. //使用addslashes函数来处理
  18. $array = addslashes ( $array );
  19. } else if (is_numeric ( $array )) {
  20. $array = intval ( $array );
  21. }
  22. return $array;
  23. }
  24. //整型过滤函数
  25. function num_check($id) {
  26. if (! $id) {
  27. die ( '参数不能为空!' );
  28. } //是否为空的判断
  29. else if (inject_check ( $id )) {
  30. die ( '非法参数' );
  31. } //注入判断
  32. else if (! is_numetic ( $id )) {
  33. die ( '非法参数' );
  34. }
  35. //数字判断
  36. $id = intval ( $id );
  37. //整型化
  38. return $id;
  39. }
  40. //字符过滤函数
  41. function str_check($str) {
  42. if (inject_check ( $str )) {
  43. die ( '非法参数' );
  44. }
  45. //注入判断
  46. $str = htmlspecialchars ( $str );
  47. //转换html
  48. return $str;
  49. }
  50. function search_check($str) {
  51. $str = str_replace ( "_", "_", $str );
  52. //把"_"过滤掉
  53. $str = str_replace ( "%", "%", $str );
  54. //把"%"过滤掉
  55. $str = htmlspecialchars ( $str );
  56. //转换html
  57. return $str;
  58. }
  59. //表单过滤函数
  60. function post_check($str, $min, $max) {
  61. if (isset ( $min ) && strlen ( $str ) < $min) {
  62. die ( '最少$min字节' );
  63. } else if (isset ( $max ) && strlen ( $str ) > $max) {
  64. die ( '最多$max字节' );
  65. }
  66. return stripslashes_array ( $str );
  67. }
  68. //防注入函数
  69. function inject_check($sql_str) {
  70. return eregi ( 'select|inert|update|delete|'|/*|*|../|./|UNION|into|load_file|outfile', $sql_str );
  71. // 进行过滤,防注入
  72. }
  73. function stripslashes_array(&$array) {
  74. if (is_array ( $array )) {
  75. foreach ( $array as $k => $v ) {
  76. $array [$k] = stripslashes_array ( $v );
  77. }
  78. } else if (is_string ( $array )) {
  79. $array = stripslashes ( $array );
  80. }
  81. return $array;
  82. }
  83. ?>
复制代码


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.