\|]{1,255}$)/'); //与xss记录相关api if(isset($_GET['cmd'])) { switch($_GET['cmd']) { //获取所有记录包括详细信息 case 'list': echo json_encode(xss_record_detail_list()); break; //只获取时间戳(索引id) case 'id_list': echo json_encode(xss_record_id_list()); break; //根据时间戳(索引id)获得单条信息 case 'get': if(isset($_GET['id'])&&preg_match(ID_REGEX,$_GET['id'])) echo json_encode(load_xss_record($_GET['id'])); else echo json_encode(false); break; //根据时间戳(索引id)删除单条信息 case 'del': if(isset($_GET['id'])&&preg_match(ID_REGEX,$_GET['id'])) echo json_encode(delete_xss_record($_GET['id'])); else echo json_encode(false); break; //清空记录 case 'clear': echo json_encode(clear_xss_record()); break; default: echo json_encode(false); } } //与js模板相关api else if(isset($_GET['js_template_cmd'])) { switch($_GET['js_template_cmd']) { //获取所有js模板的名字与描述 case 'list': echo json_encode(js_name_and_desc_list(JS_TEMPLATE_PATH)); break; //添加js模板 case 'add': if(isset($_POST['name'])&&isset($_POST['desc'])&&isset($_POST['content'])&&preg_match(FILE_REGEX,$_POST['name'])) { if(!is_writable(JS_TEMPLATE_PATH)) echo json_encode(false); else { save_js_desc(JS_TEMPLATE_PATH,$_POST['desc'],$_POST['name']); save_js_content(JS_TEMPLATE_PATH,$_POST['content'],$_POST['name']); echo json_encode(true); } } else echo json_encode(false); break; //修改js模板 case 'modify': if(isset($_POST['old_name'])&&isset($_POST['name'])&&isset($_POST['desc'])&&isset($_POST['content'])&&preg_match(FILE_REGEX,$_POST['old_name'])&&preg_match(FILE_REGEX,$_POST['name'])) { if(!is_writable(JS_TEMPLATE_PATH)) echo json_encode(false); else { if($_POST['old_name']!=$_POST['name']) delete_js(JS_TEMPLATE_PATH,$_POST['old_name']); save_js_desc(JS_TEMPLATE_PATH,$_POST['desc'],$_POST['name']); save_js_content(JS_TEMPLATE_PATH,$_POST['content'],$_POST['name']); echo json_encode(true); } } else echo json_encode(false); break; //获取某一js模板的内容 case 'get': if(isset($_GET['name'])&&preg_match(FILE_REGEX,$_GET['name'])) echo json_encode(load_js_content(JS_TEMPLATE_PATH,$_GET['name'])); else echo json_encode(false); break; //删除js模板 case 'del': if(isset($_GET['name'])&&preg_match(FILE_REGEX,$_GET['name'])) echo json_encode(delete_js(JS_TEMPLATE_PATH,$_GET['name'])); else echo json_encode(false); break; //清空js模板 case 'clear': echo json_encode(clear_js(JS_TEMPLATE_PATH)); break; default: echo json_encode(false); } } //与我的js相关api else if(isset($_GET['my_js_cmd'])) { switch($_GET['my_js_cmd']) { //获取所有我的js的名字与描述 case 'list': echo json_encode(js_name_and_desc_list(MY_JS_PATH)); break; //添加js模板 case 'add': if(isset($_POST['name'])&&isset($_POST['desc'])&&isset($_POST['content'])&&preg_match(FILE_REGEX,$_POST['name'])) { if(!is_writable(MY_JS_PATH)) echo json_encode(false); else { save_js_desc(MY_JS_PATH,$_POST['desc'],$_POST['name']); save_js_content(MY_JS_PATH,$_POST['content'],$_POST['name']); echo json_encode(true); } } else echo json_encode(false); break; //修改js模板 case 'modify': if(isset($_POST['old_name'])&&isset($_POST['name'])&&isset($_POST['desc'])&&isset($_POST['content'])&&preg_match(FILE_REGEX,$_POST['old_name'])&&preg_match(FILE_REGEX,$_POST['name'])) { if(!is_writable(MY_JS_PATH)) echo json_encode(false); else { if($_POST['old_name']!=$_POST['name']) delete_js(MY_JS_PATH,$_POST['old_name']); save_js_desc(MY_JS_PATH,$_POST['desc'],$_POST['name']); save_js_content(MY_JS_PATH,$_POST['content'],$_POST['name']); echo json_encode(true); } } else echo json_encode(false); break; //获取某一js模板的内容 case 'get': if(isset($_GET['name'])&&preg_match(FILE_REGEX,$_GET['name'])) echo json_encode(load_js_content(MY_JS_PATH,$_GET['name'])); else echo json_encode(false); break; //删除js模板 case 'del': if(isset($_GET['name'])&&preg_match(FILE_REGEX,$_GET['name'])) echo json_encode(delete_js(MY_JS_PATH,$_GET['name'])); else echo json_encode(false); break; //清空js模板 case 'clear': echo json_encode(clear_js(MY_JS_PATH)); break; default: echo json_encode(false); } } else echo json_encode(false); function xss_record_id_list() { $files = glob(DATA_PATH . '/*.php'); $list=array(); foreach ($files as $file){ $filename=basename($file,".php"); if( preg_match(ID_REGEX, $filename) ) $list[]=$filename; } return $list; } 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; } //获取js的名字与描述列表 function js_name_and_desc_list($path) { $list=array(); $files = glob($path . '/*.js'); arsort($files); foreach ($files as $file){ //由于可能有中文名,故使用正则来提取文件名 $item=array(); $item['js_uri']=$file; $filename=preg_replace('/^.+[\\\\\\/]/', '', $file); $filename=substr ( $filename , 0 , strlen ($filename)-3 ); $item['js_name']=$filename; $item['js_name_abbr']=stripStr($filename); $result=@file_get_contents(dirname( __FILE__ ).'/'.$path.'/'.$filename.'.desc'); $result=$result?$result:""; $result=decrypt($result); if(json_encode($result)===false) $result="加密密码不符,无法获得描述"; $item['js_description']=$result; $item['js_description_abbr']=stripStr($result); //特别注意:只有js_name_abbr,js_description_abbr经过stripStr处理 $list[]= $item; } return $list; } ?>