加载中…
博文
标签:

统计系统

架构

it

分类: 架构
对于互联网免费提供的网站流量统计系统,或多或少会有咱们想要的数据却没有的情况。对于一家上规模的互联网公司来说,最终会考滤进行数据的挖掘、用户行为的分析。所以,站点流量统计系统项目提上了日程,为日后用户行为分析打下基础。

以下是网站流量统计系统第二版架构,从第一版本的基础上做了核心调整。



以下是该系统的关健点:
1、高速队列,减轻前端接口直接操作MySQL带来的更新压力。
2、队列控制器,将队列数据定时更新到原始数据存储集群中,原始数据按天、按项日分表,避免超级大表出现。
3、多任务控制器(核心系统),处理PV/UV/IP/跳出率等等常规统计以及用户行为分析工作,支持多道任务同时并发执行,带锁机制,任务控制系统会按任务类别划分到不同服务器上的多任务控制器
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

挂马

漏洞

安全

it

分类: linux
特别是热门的开源程序,破解漏洞的意义非常大,所以在运维工作中,如果项目是采用开源程序,对运维的工作也提出了更大的挑战。下面咱们做一次文件挂马排查的过程:

第1步、分析情况
看表现,做分析,并不是每次都是代码被修改。
比方咱们web站使用的是php

第2步、判断正常之前的日期,估算被挂马的天数,如前7天之后出现问题,咱们就查找7天内所有修改过的文件:

find ./ -name '*.php' -mtime -7

列出7天内修改过的文件,首先文件命名排除法,文件少的话,more方式查看这些文件。

#注:程序在被挂马修改时,被touch修改了文件时间,那将有可能无法查看到,所以执行环境里一定要禁止该命令。

通过上面的排查还没结果,咱们再继续排查:

第3步:通过各种关键词进行查找分析,如:eval、file_get_contents、$_POST、cmd、exec、popen、system、shell_exec、phpinfo、get_current_user、load_file、WebShell、phpenv、DUMPFILE、base64_decode、touch、gzinflate、fsockopen等,其它就不举例了。


例:查找当前目录下,php文件含有 eval 的文件,
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
LVS-DR (NFS+LVS+HeatBeat+Ldirectord)
-、服务器清单:

    系统及软件:centos,apache,mysql
    Load Banlancer:  
             eth0: 192.168.1.210    255.255.255.0    192.168.1.1 (gw)
    Back Banlancer:                               
             ech0: 192.168.1.212    255.255.255.0    192.168.1.1 (gw)
    Real Server 1:
             ech0: 192.168.1.202     255.255.255.0    192.168.1.1 (gw)
    Real Server 2:
       
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
一、更新系统支持库
yum -y install ntp vim-enhanced flex bison automake libungif libtiff-devel pam-devel
kernel gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype
freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2
glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel openssl-devel

二、目录划规以及用户权限置设
/usr/sbin/groupadd www -g 48
/usr/sbin/useradd -u 48 -g www www
/usr/sbin/groupadd mysql
/usr/sbin/useradd mysql -d /data/database -g mysql
mkdir -p /data/database
chown -R mysql.mysql /data/database

三、安装mysql
tar -xzvf mysql-5.5.3-m3.tar.gz
cd mysql-5.5.3-m3
./configure --prefix=/usr/local/mysql --localstatedir=/data/database
--mandir=/usr/share/man --with-mysqld-user=mysql --without-debug --with-zlib
--with-big-tables --with-charset=gbk --with-collation=gbk_chinese_ci
--with-extra-charsets=all --
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

evhttp

post

源码

it

分类: c
evhttp是libevent提供的一个轻量级的基于消息驱动的HTTP Server。

在使用过程中,发现找不到接口访问POST的消息体中的数据。难道evhttpd不支持POST还是需要自已单独处理?
咱们先来看一下GET请求的操作:
例如:
http://www.m.com/?name=ok

evhttp_request_uri: 解析HTTP请求中的ur,得到/?name=ok
evhttp_parse_query: 解析名值对,得到一个evkeyvalq结构,里面包含了键值数据.

evhttp_request 结构:






简单实现代码如下:

//解析URI的参数(即GET方法的参数)
char *decode_uri = strdup((char*) evhttp_request_uri(req));
struct evkeyvalq http_query_get;
evhttp_parse_query(decode_uri, &am
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

计划任务

discuz

后台执行

it

分类: PHP
加强计划任务执行、降低用户端执行压力

1、添加cronrun.php文件

define('APPTYPEID', 1);
define('CURSCRIPT', 'cronrun');
if($argv['1'] != 'start'){
    header('HTTP/1.1 301 Moved Permanently');
    header('location: index.php');
    exit();
}
@ignore_user_abort(TRUE);
@set_time_limit(0);
require './source/class/class_core.php';
$discuz = & discuz_core::instance();
$discuz->init();
$timestamp = time();
$t = $timestamp + 600;
if($timestamp <= @filemtime('data/run.lock')){
    runlog('runlog.log','limit-run');
    exit();
}

@touch('data/run.lock', $t);
$query = DB::query('SELECT * FROM '.DB::table('common_cron').' WHERE `available`>'0' AND `nextrun`<='$timestamp' ORDER BY nextrun');
while($cron = DB::fetch($query)) {
    $cron['filen
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

窜号

discuz

x1.5

it

分类: PHP
discuz论坛本身就存在用户窜号的可能性,特别在同一IP下,有大量用户并发访问的情况下。
当接到该项bug反溃的时候,第一想到的方法就是在sid生成时加时间截,然后扩大session表的sid字段长度。但想了一下,虽然加强了,但用户并发大的时间还是会出现。

最后还是直接修改用户session过程:

在class_core.php文件的 discuz_session的init方法中

    function init($sid, $ip, $uid) {
        $this->old = array('sid' =>  $sid, 'ip' =>  $ip, 'uid' =>  $uid);
        $session = array();
        if($sid) {
            $session = DB::fetch_first('SELECT * FROM '.DB::table('common_session').
                ' WHERE sid='$sid' AND CONCAT_WS('.', ip1,ip2,ip3,ip4)='$ip'');
        }
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

密码

it

分类: PHP
PHP动态生成密码

function randpw($len=8,$format='ALL'){
    $is_abc = $is_numer = 0;
    $password = $tmp ='';    
    switch($format){
        case 'ALL':
            $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
        break;
        case 'CHAR':
            $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
        break;
        case 'NUMBER':
            $chars='0123456789';
        break;
        default :
        &nb
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
个人简介
写写代码换酒钱
个人资料
团长
团长
  • 博客等级:
  • 博客积分:0
  • 博客访问:4,163
  • 关注人气:3
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
分类
Blogroll

星星

mikespook

  

新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有