通用的PHP防注入漏洞攻击的过滤函数代码

PHP整站防注入程序,需要在公共文件中require_once本文件,因为现在网站被注入攻击现象很严重,所以推荐大家使用,具体见如下代码。

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

 

转载请注明:代码家园 » 通用的PHP防注入漏洞攻击的过滤函数代码

也许你会喜欢和关注与本文内容高度相关的文章:

有效防止PHP木马攻击的三个技巧

安全技巧:如何有效防御PHP木马攻击

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)