龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php 字符过滤类,用于过滤各类用户输入的数据

时间:2011-12-21 12:49来源:未知 作者:admin 点击:
分享到:
php安全中很重要的就是不要信任用户输入的任何数据,字符串安全过滤就尤为重要,因此提供字符串安全过滤类给大家,以便应对各种安全问题。 折叠 展开 PHP Code 复制内容到剪贴板

php安全中很重要的就是不要信任用户输入的任何数据,字符串安全过滤就尤为重要,因此提供字符串安全过滤类给大家,以便应对各种安全问题。

折叠PHP Code复制内容到剪贴板
  1.   
  2. <?php    
  3. abstract class Filter { //filter parent class    
  4. private $blackstr = array();    
  5. private $whitestr = array();    
  6. function filtit($str) {    
  7. //do something    
  8. }    
  9. }    
  10. class LoginFilter extends Filter { //for user login filte username(过滤注册的用户名)    
  11. function filtit($str) {    
  12. $this -> blackstr = array(    
  13. ´/[x7f-xff]/´, //filter chinese include chinese symbol    
  14. ´/W/´ //filter all english symbol    
  15. );    
  16. return preg_replace($this->blackstr, ´´, $str);    
  17. }    
  18. }    
  19. class EditorFilter extends Filter { //for article editor filter(过滤在线编辑器内容)    
  20. function filtit($str) {    
  21. $this -> blackstr = array(    
  22. ´/&/´,    
  23. ´/´/´,    
  24. ´/"/´,   
  25. ´/</´,   
  26. ´/>/´,   
  27. ´/\\/´,   
  28. ´///´,   
  29. ´/-/´,   
  30. ´/*/´,   
  31. ´/ /´   
  32. );   
  33. $this -> whitestr = array(   
  34. ´&´,   
  35. ´'´,   
  36. ´"´,    
  37. ´<´,    
  38. ´>´,    
  39. ´´,    
  40. ´/´,    
  41. ´-´,    
  42. ´*´,    
  43. ´ ´    
  44. );    
  45. return preg_replace($this->blackstr, $this -> whitestr, $str);    
  46. }    
  47. }    
  48. class SQLFilter extends Filter { //for filte sql query string(过滤如查询或其它sql语句)    
  49. function filtit($str) {    
  50. $this -> blackstr = array(    
  51. ´/´/´,    
  52. ´/-/´    
  53. );    
  54. return preg_replace($this->blackstr, ´´, $str);    
  55. }    
  56. }    
  57. class FileNameFilter extends Filter { //for filte a file name(过滤文件名如下载文件名)    
  58. function filtit($str) {    
  59. $this -> blackstr = array(    
  60. ´/[^A-za-z0-9_.]|\\|^|[|]/´    
  61. );    
  62. return preg_replace($this->blackstr, ´´, $str);    
  63. }    
  64. }    
  65. ?>   


具体应用实例

PHP Code复制内容到剪贴板
  1.   
  2. $filter = new FileNameFilter(); //定义实例    
  3. $downFile = $filter->filtit($_GET[´fn´]); //调用过滤方法   

精彩图集

赞助商链接