Heim >Backend-Entwicklung >PHP-Tutorial >很好用的php防止sql注入漏洞过滤函数的代码

很好用的php防止sql注入漏洞过滤函数的代码

WBOY
WBOYOriginal
2016-07-25 09:03:421246Durchsuche
  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 ) die ( '最少$min字节' );
  62. } else if (isset ( $max ) && strlen ( $str ) > $max) {
  63. die ( '最多$max字节' );
  64. }
  65. return stripslashes_array ( $str );
  66. }
  67. //防注入函数
  68. function inject_check($sql_str) {
  69. return eregi ( 'select|inert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|UNION|into|load_file|outfile', $sql_str );
  70. // 进行过滤,防注入
  71. }
  72. function stripslashes_array(&$array) {
  73. if (is_array ( $array )) {
  74. foreach ( $array as $k => $v ) {
  75. $array [$k] = stripslashes_array ( $v );
  76. }
  77. } else if (is_string ( $array )) {
  78. $array = stripslashes ( $array );
  79. }
  80. return $array;
  81. }
  82. ?>
复制代码


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn