zoukankan      html  css  js  c++  java
  • 防范sql注入式攻击的比较有见地的代码(PHP)

    1. $_POST = sql_injection($_POST);  
    2. $_GET = sql_injection($_GET);  
    3.   
    4.   
    5.   
    6.   
    7. function sql_injection($content)  
    8. {  
    9. if (!get_magic_quotes_gpc()) {  
    10. if (is_array($content)) {  
    11. foreach ($content as $key=>$value) {  
    12. $content[$key] = addslashes($value);  
    13. }  
    14. else {  
    15. addslashes($content);  
    16. }  
    17. }  
    18. return $content;  
    19. }  
    20.   
    21.   
    22.   
    23.   
    24.   
    25.   
    26.   
    27.   
    28.   
    29. 做系统的话,可以用下面的代码,也是copy来的:  
    30.   
    31.   
    32.   
    33.   
    34. /*  
    35. 函数名称:inject_check()  
    36. 函数作用:检测提交的值是不是含有SQL注射的字符,防止注射,保护服务器安全  
    37. 参  数:$sql_str: 提交的变量  
    38. 返 回 值:返回检测结果,ture or false  
    39. */   
    40. function inject_check($sql_str) {   
    41. return eregi('select|insert|update|delete|'|/*|*|../|./|union|into|load_file|outfile', $sql_str); // 进行过滤  
    42.  
    43.  
    44. /*  
    45. 函数名称:verify_id()  
    46. 函数作用:校验提交的ID类值是否合法  
    47. 参  数:$id: 提交的ID值  
    48. 返 回 值:返回处理后的ID  
    49. */   
    50. function verify_id($id=null) {   
    51. if (!$id) { exit('没有提交参数!'); } // 是否为空判断   
    52. elseif (inject_check($id)) { exit('提交的参数非法!'); } // 注射判断   
    53. elseif (!is_numeric($id)) { exit('提交的参数非法!'); } // 数字判断   
    54. $id = intval($id); // 整型化   
    55.   
    56. return $id;   
    57. }   
    58.   
    59. /*  
    60. 函数名称:str_check()  
    61. 函数作用:对提交的字符串进行过滤  
    62. 参  数:$var: 要处理的字符串  
    63. 返 回 值:返回过滤后的字符串  
    64. */   
    65. function str_check( $str ) {   
    66. if (!get_magic_quotes_gpc()) { // 判断magic_quotes_gpc是否打开   
    67. $str = addslashes($str); // 进行过滤   
    68. }   
    69. $str = str_replace("_""\_"$str); // 把 '_'过滤掉   
    70. $str = str_replace("%""\%"$str); // 把 '%'过滤掉   
    71.   
    72. return $str;   
    73. }   
    74.   
    75. /*  
    76. 函数名称:post_check()  
    77. 函数作用:对提交的编辑内容进行处理  
    78. 参  数:$post: 要提交的内容  
    79. 返 回 值:$post: 返回过滤后的内容  
    80. */   
    81. function post_check($post) {   
    82. if (!get_magic_quotes_gpc()) { // 判断magic_quotes_gpc是否为打开   
    83. $post = addslashes($post); // 进行magic_quotes_gpc没有打开的情况对提交数据的过滤   
    84. }   
    85. $post = str_replace("_""\_"$post); // 把 '_'过滤掉   
    86. $post = str_replace("%""\%"$post); // 把 '%'过滤掉   
    87. $post = nl2br($post); // 回车转换   
    88. $post = htmlspecialchars($post); // html标记转换   
    89.   
    90. return $post;   
    91. }   
    92. ?>  
  • 相关阅读:
    最近实际项目中遇到的技术问题与解决思路
    独立完成一个城市选择组件(阿里前端题目,内附知识点、思路)
    用Node.js写爬虫,撸羞羞的图片
    Flutter项目之app升级方案
    Flutter数据持久化入门以及与Web开发的对比
    为什么要学会正则表达式
    async/await,了解一下?
    面向面试题和实际使用谈promise
    从一次输入框无法输入的bug,谈如何限制输入框输入类型
    Vue组件的is具体用法
  • 原文地址:https://www.cnblogs.com/flyoo/p/2825887.html
Copyright © 2011-2022 走看看