• 技术文章 >后端开发 >php教程

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

    2016-07-25 09:03:42原创653
    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核实处理。
    专题推荐:很好用的php防止sql注入漏洞过滤函数的代码
    上一篇:nginx+php-fpm页面显示空白的解决方法 下一篇:有关php类中private访问控制的疑问
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• zend debugger 如何安装• linux centos5.5 不知什么原因装配不了gcc• 活动帖问的有关问题徐老师不回答,再开一帖吧• 果决交清学费参加广州传智PHP班为创业作准备• PHP怎么调用java代码
    1/1

    PHP中文网