Beispiel #1
0
function xss_record_detail_list()
{
    $list = array();
    $files = glob(DATA_PATH . '/*.php');
    arsort($files);
    foreach ($files as $file) {
        $filename = basename($file, ".php");
        if (preg_match(ID_REGEX, $filename)) {
            $info = load_xss_record($filename);
            if ($info === false) {
                continue;
            }
            $isChange = false;
            //如果没有设置location,就查询qqwry.dat判断location
            if (!isset($info['location'])) {
                $info['location'] = stripStr(convertip($info['user_IP'], IPDATA_PATH));
                $isChange = true;
            }
            if ($isChange) {
                save_xss_record(json_encode($info), $filename);
            }
            $list[] = $info;
        }
    }
    return $list;
}
//Windows平台最好别设成0,因为windows上lock没法实现非阻塞
set_time_limit(0);
require_once "load.php";
require_once "functions.php";
require_once "dio.php";
if (KEEP_SESSION) {
    //利用非阻塞的flock实现单例运行
    $pid = fopen(DATA_PATH . '/check.pid', "w");
    if (!$pid) {
        exit;
    }
    if (flock($pid, LOCK_EX | LOCK_NB)) {
        $files = glob(DATA_PATH . '/*.php');
        foreach ($files as $file) {
            $filename = basename($file, ".php");
            $info = load_xss_record($filename);
            if ($info['keepsession'] === true) {
                $url = getLocation($info);
                $cookie = getCookie($info);
                $useragent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2535.0 Safari/537.36";
                if (isset($info['headers_data']['User-Agent'])) {
                    $useragent = $info['headers_data']['User-Agent'];
                }
                $ip = $info['user_IP'];
                if ($url != "" && $cookie != "") {
                    $ch = curl_init();
                    $header[] = 'User-Agent: ' . $useragent;
                    $header[] = 'Cookie: ' . $cookie;
                    $header[] = 'X-Forwarded-For: ' . $ip;
                    curl_setopt($ch, CURLOPT_URL, $url);
                    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
Beispiel #3
0
if (isset($_GET['cmd'])) {
    switch ($_GET['cmd']) {
        //获取所有记录包括详细信息
        case 'list':
            echo json_encode(list_xss_record_detail());
            break;
            //只获取时间戳(索引id)
        //只获取时间戳(索引id)
        case 'id_list':
            echo json_encode(list_xss_record_id());
            break;
            //根据时间戳(索引id)获得单条信息
        //根据时间戳(索引id)获得单条信息
        case 'get':
            if (isset($_GET['id'])) {
                echo json_encode(load_xss_record($_GET['id']));
            } else {
                echo json_encode(false);
            }
            break;
            //根据时间戳(索引id)删除单条信息
        //根据时间戳(索引id)删除单条信息
        case 'del':
            if (isset($_GET['id'])) {
                echo json_encode(delete_xss_record($_GET['id']));
            } else {
                echo json_encode(false);
            }
            break;
            //清空记录
        //清空记录