360安全扫描之WordPress 页面异常导致本地路径泄漏 的漏洞修补
今天头脑一热到360安全检测那里去为自己的网站进行安全扫描了一番。上次扫描还是一年前,当初扫描一个网站是 94 分,那时候还不懂代码,就这么挂着,被360 公开着。今天的扫描发现了两个漏洞,评分 91 。为了光鲜的 100 ,Jeff决定今个儿决定要解决了这些漏洞。
主题 index.php 文件的页面异常导致本地路径泄漏的漏洞修补
其中一个漏洞是页面异常导致本地路径泄漏,就是打开 http://域名/wp-content/themes/主题/ 这个路径会跳出个错误提示,然后这个提示就会泄露你的服务器路径。
如下面提示文字:
Fatal error: Call to undefined function get_header() in /网站根路径/XXX/wp-content/themes/主题/ on line 1
如图:
解决方法:
WordPress 话一般都是架设在 PHP+Apache 服务器上,可以通过修改php脚本、配置php.ini以及httpd.conf中的配置项来禁止显示错误信息。
1、修改php.ini中的配置行: display_errors = off 2、修改httpd.conf/apache2.conf中的配置行: php_flag display_errors off 3、修改php脚本,增加代码行: ini_set(‘display_errors’, false);
不过的话虚拟主机就没有这个份了,唉,谁叫咱寄人篱下呢?咱有资本了一定买个独立的VPS,哼!
上面不能修改的话,对于WordPress ,可以采用以下代码屏蔽错误信息的显示。在主题目录下的 index.php 文件最开头加入以下代码:
<?php error_reporting(0); ?> |
---|
高级一点可以这样,实现的功能是访问http://域名/wp-content/themes/主题/ 这个路径自动跳转到首页:
<?php ini_set('display_errors', 0); ?> <?php if (function_exists('get_header')) { get_header(); }else{ header("Location: http://" . $_SERVER['HTTP_HOST'] . ""); exit; }; ?> |
---|
7.24更新:衡天主机的蓝冰大哥给我带来了另外一种方法:
在 wp-content/themes 中设置 .htaccess 代码,代码如下:
deny from all <FilesMatch ".(ico|pdf|jpg|jpeg|png|gif|swf|css|js|zip|rar|txt|woff)$"> Allow from All </FilesMatch> |
---|
表示只允许列表中的文件类型访问,其他的不能访问,如PHP。
其他文件的页面异常导致本地路径泄漏的漏洞修补
如果使用WordPress ,可能会有其他文件也会报为漏洞,比如
/wp-includes/user.php
除了方法如上面一样,通过修改php脚本、配置php.ini以及httpd.conf中的配置项是一劳永逸,也可以在该php文件最开头前加入:
<?php error_reporting(0); ?> |
---|
晒图
解决后Jeff 用360 的重新扫描,呵呵,100 分了,晒一下:
虽然网站安全问题还可能存在,虽然说360 流氓不可信,但老实说人家做得确实不错。
WordPress 安全性就是好,至少比asp 的网站程序强多了。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android 天气APP(二)获取定位信息
- Android 天气APP(三)访问天气API与数据请求
- Android 天气APP(四)搭建MVP框架与使用
- Android 天气APP(五)天气预报、生活指数的数据请求与渲染
- Android 天气APP(六)旋转风车显示风力、风向
- Android 天气APP(七)城市切换 之 城市数据源
- Elasticsearch: Reindex接口
- Android Studio 更新版本之后报错: Cannot access android.arch.lifecycle.ViewModelStoreOwner
- Android各版本查询和开启悬浮窗权限
- RuntimeException: setAudioSource failed异常
- Java&Android获取当前日期、时间、星期几、获取指定格式的日期时间、时间戳工具类包含使用示例
- Android TV 开发之 TV视频播放器
- Android MediaPlayer 音乐播放器扫描 本地音乐、上一曲、下一曲切歌、播放本地音乐
- 1小时真正掌握正则表达式
- Android Studio 安装配置教程 - Windows(详细版)