Category Archives: Wiki支持
Mediawiki允许多种文件类型(格式)文件上传设置
开启Mediawiki上传设置,默认支持的文件格式是: ‘png’, ‘gif’, ‘jpg’, ‘jpeg’ 。 支持多种文件类型上传设置 当上传其他文件格式时会提示(假设.svg格式) “.svg”是一种不准许的文件类型。容许的多种文件类型有png, gif, jpg, jpeg 找到“includes/DefaultSettings.php”修改 $wgFileExtensions = array( ‘png’, ‘gif’, ‘jpg’, ‘jpeg’ ); 为 $wgFileExtensions = array( ‘png’, ‘gif’, ‘jpg’, ‘jpeg’, ‘svg’ ); 保存后就可以上传”.svg”格式的文件了,当然你也可以添加更多其他格式的文件类型,比如我的: $wgFileExtensions = array( ‘png’, ‘gif’, ‘jpg’, ‘jpeg’ ,’docx’,’rar’,’zip’,’pdf’); … Continue reading
升级到 MediaWiki 1.15.1
从MediaWiki 1.12.0 直接升过来的,按照升级说明,一路很顺利,用的最后一种办法,重新安装来升级的。 升级前准备,备份数据库,备份配置文件 LocalSettings.old.php 为LocalSettings.old.php ,修改好模板文件(若你先前修改过的话),删除多余的语言文件(不是必须的)。 安装的时候的数据库和原配置一样,不记得的可以打开 LocalSettings.old.php 看看。 安装成功之后删除新生成的 LocalSettings.php ,然后改 LocalSettings.old.php 为 LocalSettings.php 。 升级完成,测试基本功能是否正常。。 补充: 找到的关闭新用户注册的办法,也发到这里来了 就是在配置文件 LocalSettings.php 中添加以下语句: #Disallow creating accounts $wgGroupPermissions['*']['createaccount'] = false; 关闭游客顶部的IP地址显示(可减轻服务器负载): $wgShowIPinHeader = false; 关闭游客编辑权限: $wgGroupPermissions['*']['edit'] = false; 查看更多关于 Mediawiki LocalSettings配置变量索引 … Continue reading
HDWiki4.0.5标签Tags过滤危险网页代码修复办法
环境:HDWiki4.0.5 描述:标签中的内容在被服务端“处理”时候没有被严格过滤(有一层关键字过滤),不过内容在发送到服务器前被客户端的js处理过,原版编辑器模板并没有正常使用上的问题。 前几天为HDWiki换个编辑器问题就出来了,由于偶的编辑器页面没有js处理,导致发送到服务器的Tags中的网页标签代码也被存储啦,然后查看词条页面的时候,就看到发送的网页代码效果了。 修复办法:打开control目录下的doc.php,找到 大概在178和315行 $doc['tags']=$_ENV['doc']->replace_danger_word($doc['tags']); 修改为 $doc['tags']=strip_tags($_ENV['doc']->replace_danger_word($doc['tags'])); 即可。 同时建议把标题Title也进行同样的“过滤”(不过代码在Title里是没有太大危险性的,因为Title已经在服务端进行了转换处理)! 最后感谢“风吹过的夏天”同学的问题纠结和热心帮助。。 附注:PHP strip_tags函数说明 strip_tags() 函数剥去 HTML、XML 以及 PHP 的标签。 strip_tags(string,allow) 参数 描述 string 必需。规定要检查的字符串。 allow 可选。规定允许的标签。这些标签不会被删除。 注释:该函数始终会剥离 HTML 注释。这点无法通过 allow 参数改变。 参考:PHP strip_tags() 函数
为Hdwiki4.0.5换个HTML编辑器!
昨天在hdwiki论坛看到有童鞋挖出hdwiki曾经使用过kindeditor编辑器,并且为hdwiki4.0.5成功更换强大的编辑器!可以来测试。。 模仿一下,我也在本地测试了下,还行 。 编辑页面模板是仿着词条页面模板来写的。 测试运行版本 hdwiki版本:4.0.5 kindeditor版本:3.3.1 editor.htm模板中嵌入编辑器的说明 <textarea id=”content” name=”content” style=”width:800px;height:300px;visibility:hidden;”>{$doc['content']}</textarea> <script type=”text/javascript” charset=”utf-8″ src=”js/kindeditor/kindeditor.js”></script> <script type=”text/javascript”>KE.show({id : ‘content’});</script> 这里配置文件单独写在一个js中来完成配置 <script type=”text/javascript” src=”js/kindeditor/keconfig.js”></script> 在kindeditor.js中添加“目录按钮”和“内链按钮”的插件(plugin) 关于插件的添加可以查看官方的说明文档 首先在kindeditor.js的以下位置 KE.lang = { 添加按钮对应的说明文字 innerlink : “内部链接”, section : “目录” 然后在最后添加按钮对应的代码: KE.plugin['section'] = … Continue reading
对HDWiki网站进行FLASH恶意代码加载与修复办法[HDWiki跨站漏洞]
今天下午在“百科”里发现异常情况:点开一个词条后,刚刚看到内容,就跳转到一个电影网站(要真是个电影网站还好点,可看到的是三个弹出网页,然后就广告广告,连那个最大的很像播放器的东东也是个广告,人渣啊)啦!郁闷的还以为是浏览器出问题啦,后退后退还是不行,看看链接也没有错啊,怀疑是不是域名被劫持啦,于是ping,对啊,换个浏览器打开域名首页,正确! 一个念头就是词条内容有问题,HD一直有个问题就是词条名字太长会被错误的截断,导致网页源码乱码(应该是编码字节处理没搞好),只有IE下会是乱码,一个一个点刚才的词条,有一次跳转发生啦,囧。 实施对HDWIKI百科网站的FLASH挂马欺骗(任何一个人点进词条自动跳转到目标网站) 只好把那个网页用迅雷下回来,看源码,没有太大异常,只有一个,发现”embed”半闭合标签,里边的Swf打开后跳转到目标网站,疑团解开啦,找办法修复。 怎样过滤词条添加过程中的SWF文件?发现使用正常的添加媒体按钮添加的SWF文件并没有任何问题(不会跳转)。 使用源码直接添加写好的SWF嵌入代码: <embed type=”application/x-shockwave-flash” src=”http://clin003.com/sa/1.swf” AllowScriptAccess=”always” /> 对HDWIKI编辑器进行修复 跳转,囧,看来从编辑器里把插入SWF时附带的代码修改并不会起作用,对过滤语句的标签中添加“embed”,是不起作用的(HDwiki 4.0.3的编辑器),可能我写的有问题。 于是就取个最捷径的办法,把切换到源码模式的按钮事件所使用的函数语句注释掉!! 文件为“js”目录,“editor”文件夹下的“editor.js”(注释掉函数内容暂时解决) hdwiki4.03的大概在1681行到1698行 hdwiki4.04的大概在965到973行 隐患 虽然从编辑器功能上进行啦防范,但仍然有可能利用(因为这段代码没有被过滤,可以直接发送制作好的数据包进行POST) 附注: swf的跳转动作代码很简单 if(1){geturl(“http://clin003.com/”,”_self”);} 只要这样就可以啦,测试页面:http://clin003.com/sa/index.html (建议保存到不同的域名下试试效果)。
HdWiki跨站漏洞暂时修复办法[20090505]
目前只是发现搜索框,词条名称那里提交的内容没有被过滤,可导致跨站攻击,只是这样的攻击一般都比较容易发现,不是大站或者安全类的站的话,影响不是很大。 不过还是写下暂时修复办法: 打开“/control/search.php” 对提交的内容进行转义(HDwiki群Terry提供) $searchtext=stripslashes($element['searchtype']== “tag”?”TAG:”.stripslashes($element['keyword']): stripslashes($element['keyword'])); $this->view->assign(‘categorylist’,$categorylist); $this->view->assign(“searchtext”,htmlspecialchars($searchtext)); $this->view->assign(“list”,$list); $this->view->assign(‘navtitle’,$this->view->lang['search'].’-’.string::substring(htmlspecialchars((($element['keyword']))),0,20)); 同样在doc.php中 $title=string::substring(string::stripscript($_ENV['doc']-> htmlspecialchars(replace_danger_word(trim($this->post['title'])))),0,80); 另外发现在默认输入“词条名”选择进入词条时,的title变量只是经过简单的去掉头尾空格,然后就给sql语句使用啦,只是HDwiki在使用的时候做啦特殊”调用“(下午去杀毒啦,到现在还没坐下来仔细研究..) $title=trim($this->post['searchtext']); … $sql=”select d.did,d.tag,d.title,d.author,d.authorid,d.time,d.summary from wiki_doc d where d.title LIKE ‘%$title%’ order by d.time desc”;