扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
WordPress是著名的开源CMS(内容管理)系统。近日,在4.0版本以下的Wordpress被发现存在跨站脚本漏洞(XSS),新版本的Wordpress已经修复了这些问题。为了安全起见,建议站长们尽早更新到WP新版本。 该漏洞是由芬兰IT公司Klikki Oy的CEO Jouko Pynnonen发现的,只存在于Wordpress4.0以下的版本中。据调查得知全球有86%的Wordpress网站都感染了这一漏洞,也就意味着全球数百万的网站都存在着潜在的危险。一些知名网站也使用了Wordpress软件,如Time、UPS、NBC Sports、CNN、Techcrunch 和FreeBuf:) 漏洞概述 WordPress中存在一系列的跨站脚本漏洞,攻击者利用跨站脚本伪造请求以欺骗用户更改登录密码,或者盗取管理员权限。 如Jouko Pynnonen解释道: 当博客管理员查看评论时,评论中的漏洞代码会自动在其Web浏览器上运行。然后恶意代码会偷偷接管管理员账户,从而执行管理员操作。 为了证明他们的观点,研究人员创建了一个漏洞利用程序(exploits)。利用这个exploits,他们创建了一个新的WordPress管理员账户,改变了当前管理员密码,并在服务器上执行了攻击PHP代码。 漏洞分析 问题出在wordpress的留言处,通常情况下留言是允许一些html标签的,比如、、等等,然而标签中有一些属性是在白名单里的,比如标签允许href属性,但是onmouseover属性是不允许的。 但是在一个字符串格式化函数wptexturize()上出现了问题,这个函数会在每一个留言上执行,函数的功能是把当前的字符转义成html实体,比如把“”转义为“”。为了防止干扰html格式,wptexturize()首先会以html标签为标准把文本分成若干段,除了html标签,还有方括号标签比如[code]。分割的功能是由下列正则表达式完成的。 在wp-includes/formatting.php代码的第156行: $textarr = preg_split(‘/(.*|\[.*\])/Us’, $text, -1, PREG_SPLIT_DELIM_CAPTURE); 但是如果文章中混合着尖括号和方括号[]会造成转义混淆,导致部分代码没有转义。 攻击者可以通过这个漏洞在允许的HTML标签中注入样式参数形成XSS攻击,比如通过建立一个透明的标签覆盖窗口,捕捉onmouseover事件。 漏洞利用测试 以下代码可以用于测试 [[” NOT VULNERABLE] 修复建议 这一漏洞很容易被攻击者利用,WordPress官方建议用户尽快更新补丁,而在新版WordPress 4.0.1已经修复了所有的漏洞。 WordPress官方于11月20日发布了官方补丁,目前大多数的WordPress网站上都会收到补丁更新提醒通知;如果有一些其他原因使得你无法更新补丁,Klikki Oy公司还提供了另外一个解决方案(workaround)可以修复该漏洞。 wptexturize可以通过在wp-includes/formatting.php开头增加一个返回参数避免这个问题: function wptexturize($text) { return $text; // ADD THIS LINE global $wp_cockneyreplace; 额外提醒 如果你使用的是WP-Statistics WordPress插件,你也应该更新补丁。因为这些插件上也存在跨站脚本漏洞,攻击者同样可以实施攻击。
成都创新互联公司主营丘北网站建设的网络公司,主营网站建设方案,app软件定制开发,丘北h5成都微信小程序搭建,丘北网站营销推广欢迎丘北等地区企业咨询
上个月下旬,wordpress低调地发布了4.1版本,本着与时俱进的态度,我决定尽早升级,在网站后台点击更新,等待了很久,出现了空白页面,反复折腾了七八次,还是无法升级;上网查找了很多资料,试了很多方法,最好手动升级成功了。
回想这次坎坷的网站升级之路,主要原因可能是中途换过主机环境,一些文件夹权限或服务器配置有过变更,导致升级时程序无法替换文件,让自动升级失败。
为了以后,大家可以从容地面对类似的情况,不再纠结很久再做决定;下面,还是简单罗列一下wordprss自动升级失败的原因及解决方案。
网络问题
现象:点击更新提示,浏览器右下角一直提示连接域名,然后没有然后了。
原因:wordpress的服务器在国外,国内主机去访问,速度有时候不稳定。
处理方案:建议换个时间去更新,实在不行直接选择手动升级。
文件权限问题
现象:点击更新提示,要求输入FTP账号、密码什么的,linux主机较多出现。
原因:出现这个提示,一般是指文件夹没有写入权限;网站程序更换系统环境时,好比从A主机到B主机,文件夹权限可能没有正确传递,很容易出现这种情况。
处理方案:可以直接输入FTP账号、密码;部分VPS或云主机,没有开通过FTP,可以赋予网站目录www用户权限,命令是chown
-R
www
/home/web/wordpress;当然,还可以用winscp等工具登陆ssh,直接鼠标右键修改文件夹权限。
环境配置问题
现象:点击更新提示,看起来在正常更新,过会儿停留在空白页面。
原因:出现这个提示,原因有很多,好比开启了防目录跨站功能。
处理方案:如果是虚拟主机,联系空间商处理;如果是VPS或云主机,可以去主机控制面板或防火墙软件上,暂时取消掉类似的安全设置。
至于怎么取消,要看具体情况,一般是设置php.ini文件,搜索open_basedir,在前面加上#注释掉;部分防火墙软件,也有可能有类似的功能,限制了网站程序目录权限。当然,为了安全,不建议取消防跨站功能,可以通过手动升级来替代。
除开上面几种常见的情况,有时候可能会遇见更奇怪的情况;这个时候,不妨手动升级程序,只要简单五步,即可顺利升级到最新版的wordpress程序。
手动升级wordpress
1、登陆网站后台,暂停正在使用的插件,备份数据库及网站;
2、到wordpress官网下载最新的程序,压缩上传到网站根目录;
3、解压覆盖网站目录下的wp-admin、wp-includes文件夹;
4、解压覆盖根目录下面的其它文件(wp-config.php除外);
5、访问http://域名/wp-admin/upgrade.php升级,按提示操作。
注意事项:注意备份网站和数据库,替换过程中,保留wp-content目录(主题目录,非常重要)、wp-config.php(数据库配置文件,非常重要)、robots.txt(一般重要)、favicon.ico(一般重要)等文件。按这个流程操作,99%可以正常升级;若依然升级失败,可能是数据库或其它配置坏了,建议先默哀,再查找原因。
本文由不否网
提供,欢迎转载、分享、交流。
其它答案没有答到点上。
我的解决方法是直接在入口文件index.php里,过滤url
$url=$_SERVER['REQUEST_URI'];
判断$url,凡带有script 字符匹配的,即返回403代码
轻松解决这个问题!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流