百搜论坛欢迎您的加入!
adimg adimg
 
昨日:篇  今日:篇   总帖:篇   会员:
博主最大Lv63   
【原创文章】PHP实现bbcode安全html标签功能     

 php自带strip_tags函数,可以过滤掉html标签,保留所需标签,但此功能有不足,就是不能过滤掉保留下来的标签的属性,这给xxs漏洞创造了机会,如何处理呢?我写了一段二次过滤标签属性的php bbcode函数:


  1. function BBcode($str, $marks = null) {
  2. if ($marks === null) {
  3. global $BBCODEMARKS;
  4. global $SET_BBCODEMARKS;
  5. if ($SET_BBCODEMARKS) {
  6. $marks = $SET_BBCODEMARKS;
  7. } else {
  8. $marks = $BBCODEMARKS;
  9. }
  10. }
  11. $str = strip_tags($str, $marks);
  12.  
  13. //$htmljsmarks = explode(',', $HTMLJSMARKS);
  14. $str1len = $str2len = 0;
  15. if (preg_match_all('/\<(.*?)\>/', $str, $match)) {
  16. //print_r($match);
  17. foreach ($match as $value) {
  18. foreach ($value as $value2) {
  19. //print_r($value2);
  20. $value2 = htmlspecialchars(strtolower($value2));
  21. $str1len += strlen($value2);
  22. $str2len += strlen(preg_replace('/on([a-z]+)=/', '', $value2));
  23. }
  24. if ($str1len != $str2len) {
  25. $str = htmlspecialchars($str);
  26. break;
  27. }
  28. }
  29. }
  30. //echo $str1len . " " . $str2len . "<br>";
  31. return $str;
  32. }

此段函数是从puyuetianPHP开发框架中提出来的,可以过滤掉保留下来的html标签的不合法内容,将其直接转化为html纯文本形式。


此文章为原创文章,转载请注明出处及作者:有天轻论坛(http://www.hadsky.com) & 作者:蒲乐天

 0  已被阅读了1154次  楼主 2020-06-30 12:23:22
回复列表

回复:【原创文章】PHP实现bbcode安全html标签功能

联系站长 友链申请桂ICP备19000949号-1     桂ICP备19000949号-1
您的IP:3.129.249.105,2024-05-05 23:06:53,Processed in 0.01458 second(s).
免责声明: 本网不承担任何由内容提供商提供的信息所引起的争议和法律责任。
Powered by HadSky 7.12.9
已有0次打赏
(0) 分享
分享
取消
免责声明
1、本站资源,均来自网络,版权归原作者,所有资源和文章仅限用于学习和研究目的 。
2、不得用于商业或非法用途,否则,一切责任由该用户承担 !
如果觉得本文还不错请点个赞或者打赏点轻币哦~
拒绝伸手党,拿走请回复,尊重楼主,尊重你我他~

侵权删除请致信 E-Mail:207882320@qq.com