W3 Total Cache 和 WP Super Cache 高危漏洞

3

今天发现博客有一条垃圾评论,内容很奇怪

评论内容结构是这样的

<!--mfunc eval(base64加密串); --><!--/mfunc-->

解密base64之后发现恶意代码通过fopen fwrite fclosedirname($_SERVER['SCRIPT_FILENAME']) . '/' . 'wp-includes/etelan.php';写入了另一串base64加密的执行命令,显而易见写入的肯定是BackDoor之类的内容

PHP header跳转失效

1
header("Location: https://xiumu.org/");

PHP的 header 跳转之前不能有任何内容输出,因为PHP开始执行的时候就已经向浏览器送出HTTP头信息,之后就不再允许更改了.

但是如果必须要在输出之后再处理header信息的话可以使用 ob_start() ob_end_flush() 来缓存一下要发送的内容,等到header继续再发送内容.

或者一个更简单的办法,修改php.ini,找到 output_buffering=Off 修改为 output_buffering=4096

php白名单类

3

使用方法

1
2
3
4
5
6
$allow_ip = array("192.168.1.1","210.10.2.1-20","222.34.4.*","127.0.0.1");
 
$oBlock_ip = new allowIp($allow_ip);
if( !$oBlock_ip->checkIP() ){
  exit('您的IP为:'.$oBlock_ip->ip.'禁止访问');
}

jQuery插件小集

1

自定义滚动条插件 – jscoll

滚动条样式至今没有一个统一的标准,各家浏览器有各家的做法,IE高版本索性放弃了给用户自定义滚动条的机会

如果非要做,最好的解决办法莫过于用JS模拟一个滚动条出来,而且兼容性还好.

传送门

史上最迷你的LightBox插件

12

刚码完,各种BUG,仅供研究

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<style>
#lightbox{
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 99999!important;
    overflow: hidden;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    background: rgba(35,35,35,.7);
    *background:rgb(35,35,35);
    *filter: alpha(opacity=95);
}
/*ie6 fix*/
* html { background:url(*) fixed; }
* html body { margin:0; height:100%; }
* html #lightbox { position: absolute; left: expression(documentElement.scrollLeft + documentElement.clientWidth - this.offsetWidth); top: expression(documentElement.scrollTop + documentElement.clientHeight - this.offsetHeight); }
#lightbox p{
    background: url("img/loader.gif") no-repeat center center;
    height: 100%;
    width: 100%;
    line-height: 1px;
    text-align: center;
    display: inline-block;
}
#lightbox img{
    display: inline-block;
    max-width: 100%;
    margin: 0;
    margin-top: 3%;
    padding: 0;
    width: auto;
    height: auto;
    vertical-align: middle;
    border: 15px solid #fff;
}
</style>
<script>
(function($) {
$.fn.lightBox = function() {
    $(this).bind("click",function () {
        var url = $(this).attr("href");
        if ($("#lightbox").length == 0) {
            $("body").append('<div id="lightbox"><p><img src="'+url+'" /></p></div>');
            $("#lightbox").click(function (event) {
                $(this).fadeOut().remove();
                event.stopPropagation();
            })
        }
        return false;
    });
};
})(jQuery);
 
$(document).ready(function() {
    $('a[href$="jpg"],a[href$="png"],a[href$="gif"]').lightBox();
});
</script>

分享一个很不错的PHP分页类

0

page

首先声明这个类不是朽木原创的,没找到出处,今天用到了 顺手码了一段CSS样式.

使用方法很简单只需要指定总页数就可以了.

$pager = new page($total);
echo $pager->pageShow();

数据库操作

//总条数
$total = $db->getVar("SELECT count(*) FROM `{$table}`");
//初始化分页类 
$pager = new page($total);
$sql = "SELECT * FROM `{$table}` ORDER BY `id` DESC LIMIT ".$pager->__get('limit');
$list = $db->getData($sql);
//分页HTML
$pagehtml = $pager->pageShow();

BlueHost跨站/跨目录权限解决方案

0

BlueHost面板点击PHP Config

切换到PHP 5.4 (Single php.ini),点击Save保存,这时候FTP连接到BlueHost,在/public_html目录下会出现一个php.ini文件,邮件把所有权限的勾全部取消掉,下载这个文件,首先找到如下对应的参数修改一下