vBulletin HACK----关于排版的两个HACK


Posted in PHP onOctober 09, 2006

《以vB代码实现的简单文字排版》
原因:1.1.4版本中没有这些,而国内的比较著名的UBB HACK之家就增加了很多对于文字排版的UBB代码(vB代码)。
优点:只需要几行,就可以实现,很简单。
缺点:因为需要嵌套,所以如果用户写得不好的话,会影响帖子其它内容的样式,甚至殃及整个话题。
自评:其实,这只是将更多的HTML代码以vB代码的形式来实现,为的让人从另一个角度去学习如何进行Web的文字排版而不用去学HTML,也为了安全。

步骤:打开 global.php ,查找“
function bbcodeparse2($bbcode,$forumid=0,$allowsmilie=1) {
”,在[code]和其它HACK之前的适当位置,例如“
      // 执行引用回复
      $bbcode=eregi_replace("quote\]","quote]",$bbcode);  // 小写化
      $bbcode=str_replace("[quote]rn","<blockquote><smallfont>引用:</smallfont><hr>",$bbcode);
      $bbcode=str_replace("[quote]","<blockquote><smallfont>引用:</smallfont><hr>",$bbcode);
      $bbcode=str_replace("[/quote]rn","<hr></blockquote>",$bbcode);
      $bbcode=str_replace("[/quote]","<hr></blockquote>",$bbcode);
”,在后面加入“
      // Hack color,font,size,style,center
      $bbcode=eregi_replace("\[color=["]{0,1}(#[a-z0-9-]{6})["]{0,1}\]","<font color=\1>",$bbcode);  // [color=]
      $bbcode=eregi_replace("\[/color\]","</font>",$bbcode);  // [/color];
      $bbcode=eregi_replace("\[size=["]{0,1}([0-9]{1})["]{0,1}\]","<font size=\1>",$bbcode);  // [size=]
      $bbcode=eregi_replace("\[/size\]","</font>",$bbcode);  //  [/size]
      $bbcode=eregi_replace("\[font=["]{0,1}([^\[]*)["]{0,1}\]","<font face="\1">",$bbcode);  // [font=]
      $bbcode=eregi_replace("\[/font\]","</font>",$bbcode);  //  // [/font]
      $bbcode=eregi_replace("\[style=["]{0,1}([^\[]*)["]{0,1}\]","<span style="\1">",$bbcode);  // [style=]
      $bbcode=eregi_replace("\[/style\]","</span>",$bbcode);  //  [/style]
      $bbcode=eregi_replace("\[center\]","<p align=center>",$bbcode);  // [center=]
      $bbcode=eregi_replace("\[/center\]","</p>",$bbcode);  //  [/center]
      // End Hack color size style
”,完成。
范例可以参考:

《禁止JavaScript》
原因:vBulletin没有对Javascript脚本做任何的特别对待处理,所以如果论坛开放了HTML代码的话,就有可能受到alert或window.open的袭击而沦陷。

步骤:打开 global.php ,查找“
    if ($dohtml==0) {
      // 删除HTML代码
      $bbcode=str_replace("&","&",$bbcode);
      $bbcode=str_replace("<","<",$bbcode);
      $bbcode=str_replace(">",">",$bbcode);
    }
”,在最后一个花括号前,加入“
    } else {
      $bbcode=eregi_replace("<([/]{0,1}script[^<]*)>","<\1>",$bbcode);
”,完成!

【本文版权归作者与奥索网共同拥有,如需转载,请注明作者及出处】    

PHP 相关文章推荐
PHP和XSS跨站攻击的防范
Apr 17 PHP
php escape URL编码
Dec 10 PHP
基于php常用正则表达式的整理汇总
Jun 08 PHP
解析wamp5下虚拟机配置文档
Jun 27 PHP
php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法
Nov 30 PHP
php编程中echo用逗号和用点号连接的区别
Mar 26 PHP
php json中文编码为null的解决办法
Dec 14 PHP
php中的单引号、双引号和转义字符详解
Feb 16 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
May 09 PHP
实例分析10个PHP常见安全问题
Jul 09 PHP
PHP之多条件混合筛选功能的实现方法
Oct 09 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 PHP
PHP+APACHE实现用户论证的方法
Oct 09 #PHP
从C/C++迁移到PHP——判断字符类型的函数
Oct 09 #PHP
PHP实现图片简单上传
Oct 09 #PHP
在线增减.htpasswd内的用户
Oct 09 #PHP
将OICQ数据转成MYSQL数据
Oct 09 #PHP
PHP中一个控制字符串输出的函数
Oct 09 #PHP
PHP用户指南-cookies部分
Oct 09 #PHP
You might like
PHP获取客户端真实IP地址的5种情况分析和实现代码
2014/07/08 PHP
PHP使用file_get_content设置头信息的方法
2016/02/14 PHP
CI框架中数据库操作函数$this-&gt;db-&gt;where()相关用法总结
2016/05/17 PHP
php str_getcsv把字符串解析为数组的实现方法
2017/04/05 PHP
精通Javascript系列之Javascript基础篇
2011/06/07 Javascript
用原生JavaScript实现jQuery的$.getJSON的解决方法
2013/05/03 Javascript
javascript实现div的显示和隐藏的小例子
2013/06/25 Javascript
JS控制一个DIV层在指定时间内消失的方法
2014/02/17 Javascript
JS操作CSS随机改变网页背景实现思路
2014/03/10 Javascript
JS实现仿京东淘宝竖排二级导航
2014/12/08 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
JavaScript 链式结构序列化详解
2016/09/30 Javascript
总结Javascript中数组各种去重的方法
2016/10/04 Javascript
基于jQuery实现滚动刷新效果
2017/01/09 Javascript
JavaScript中的编码和解码函数
2017/02/15 Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
2017/02/15 Javascript
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
vue下canvas裁剪图片实例讲解
2020/04/16 Javascript
Python3基础之基本数据类型概述
2014/08/13 Python
Python中逗号的三种作用实例分析
2015/06/08 Python
在Django的模型中添加自定义方法的示例
2015/07/21 Python
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
PyQtGraph在pyqt中的应用及安装过程
2019/08/04 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
Python根据URL地址下载文件并保存至对应目录的实现
2020/11/15 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
CSS超出文本指定宽度用省略号代替和文本不换行
2016/05/05 HTML / CSS
CSS3 二级导航菜单的制作的示例
2018/04/02 HTML / CSS
HTML5 canvas基本绘图之绘制线条
2016/06/27 HTML / CSS
一套.net面试题及答案
2016/11/02 面试题
给朋友的道歉短信
2015/05/12 职场文书
2019年教师入党申请书
2019/06/27 职场文书
Python实战之实现康威生命游戏
2021/04/26 Python
Redis Cluster 字段模糊匹配及删除
2021/05/27 Redis
Win10服务主机占用内存怎么办?Win10服务主机进程占用大量内存解决方法
2022/09/23 数码科技