1. 添加限制过高的漫游版本号

2. 修复参数开头为 & 的问题
3. 添加缓存请求日志
pull/32/head
david082321 3 years ago committed by GitHub
parent 5494e51898
commit 812e740eff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -15,6 +15,7 @@ define('LOCK_AREA', 0); // 服务器锁区,须设置$SERVER_AREA。0 否, 1
$BLACKLIST = array('1', '2', '3'); // 本地黑名单,填写 uid可自行添加、删除注意使用英文,和'
$WHITELIST = array('1', '2', '3'); // 本地白名单,填写 uid可自行添加、删除注意使用英文,和'
define('ROAMING_MIN_VER', 0); // 设置最低允许漫游版本,详情看哔哩漫游仓库 versionCode
define('ROAMING_MAX_VER', 0); // 0 表示不限制,设置最高允许漫游版本,详情看哔哩漫游仓库 versionCode
// 封锁指定epid视频
define('BAN_EP', 0); // 是否开启ban特定视频
@ -40,6 +41,7 @@ define('CACHE_TIME_404', 60*60*24); // 返回404时的缓存时长
define('CACHE_TIME_OTHER', 60*60*24); // 返回其他错误时的缓存时长(秒)
define('CACHE_TIME_USER', 60*60*24); //缓存用户key的时长
define('CACHE_TIME_BLACKLIST', 60*15); //缓存黑白名单的时长(秒)
define('SAVE_LOG', 0); // 开启日志须配置MySQL数据库不会自动清除空间满了请自行手动清除。0 否, 1 是
// MySQL数据库
define('DB_HOST', 'localhost');

@ -107,6 +107,12 @@ if (ACCESS_KEY != "") { // access_key 存在
default:
// pass
}
// 写入日志
if (SAVE_LOG == 1 && $type != 1) {
define('BAN_CODE', $baned);
define('UID', $uid);
write_log();
}
// 开始ban
$support_replace_type = array("hlw","tom","txbb","xyy","all","random"); // 允许替换的类型兼容旧版config
if ($is_baned) {

@ -476,6 +476,7 @@ function read_status($area){
return 0;
}
}
//写入此次解析状态
function write_status($code,$area) {
global $dbh;
@ -503,4 +504,12 @@ function write_status($code,$area) {
$dbh -> exec($sql);
}
}
// 写入日志
function write_log() {
global $dbh;
$ts = time();
$sql = "INSERT INTO `log` (`time`,`area`,`version`,`version_code`,`access_key`,`uid`,`ban_code`,`path`,`query`) VALUES (now(),'".AREA."','".BILIROAMING_VERSION."','".BILIROAMING_VERSION_CODE."','".ACCESS_KEY."','".UID."','".BAN_CODE."','".PATH."','".QUERY."')";
$dbh -> exec($sql);
}
?>

@ -4,7 +4,16 @@ if(!defined('SYSTEM')) {exit();}
// 判断要转发的内容
$path = explode('/index.php', $_SERVER['PHP_SELF'])[0];
$query = str_replace("/&", "", $_SERVER['QUERY_STRING']);
$query = str_replace("&&", "",str_replace("/&", "", $_SERVER['QUERY_STRING']));
// 修复参数开头为 & 的问题
if (substr($query,0,1) == "&") {
$query = substr($query,1);
}
// 日志参数
if (SAVE_LOG == 1) {
define('PATH', $path);
define('QUERY', $query);
}
define('ACCESS_KEY', @$_GET['access_key']);
define('CID', @$_GET['cid']);
@ -17,10 +26,11 @@ $baned = 0;
$th_paths = array("/intl/gateway/v2/app/search/type","/intl/gateway/v2/app/search/v2","/intl/gateway/v2/app/subtitle","/intl/gateway/web/v2/subtitle","/intl/gateway/v2/ogv/view/app/season","/intl/gateway/v2/ogv/view/app/season2","/intl/gateway/v2/ogv/playurl","/intl/gateway/v2/ogv/view/app/episode");
$get_area = @$_GET['area'];
if (BILIROAMING_VERSION == '' && BILIROAMING_VERSION_CODE == '') {
if (BILIROAMING == 1 && WEB_ON == 0 && $path!="") { //仅限漫游用户且未开放web脚本
if (BILIROAMING == 1 && WEB_ON == 0 && $path!="") { // 仅限漫游用户且未开放web脚本
define('AREA', $get_area);
block(10, "本服务器限漫游使用");
}
if ($get_area == '' || $get_area == 'false') { //web脚本,兼容泰区无area情况
if ($get_area == '' || $get_area == 'false') { // web脚本,兼容泰区无area情况
if (in_array($path, $th_paths)) {
define('AREA', 'th');
} else {
@ -30,10 +40,7 @@ if (BILIROAMING_VERSION == '' && BILIROAMING_VERSION_CODE == '') {
define('AREA', $get_area);
}
} elseif (BILIROAMING_VERSION != '' && BILIROAMING_VERSION_CODE != '') {
if ((int)BILIROAMING_VERSION_CODE < ROAMING_MIN_VER) {
block(14, "哔哩漫游模块版本过低");
}
//适配老漫游版本兼容泰区无area情况
// 适配老漫游版本兼容泰区无area情况
if ($get_area == '') {
if (in_array($path, $th_paths)) {
define('AREA', 'th');
@ -43,6 +50,12 @@ if (BILIROAMING_VERSION == '' && BILIROAMING_VERSION_CODE == '') {
} else {
define('AREA', $get_area);
}
// 检查版本号
if ((int)BILIROAMING_VERSION_CODE < ROAMING_MIN_VER) {
block(14, "哔哩漫游模块版本过低");
} elseif ((int)BILIROAMING_VERSION_CODE > ROAMING_MAX_VER && ROAMING_MAX_VER != 0) {
block(16, "哔哩漫游模块版本过高");
}
} else {
block(15, "错误请求头");
}
@ -61,7 +74,18 @@ if (in_array(AREA, $BAN_SERVER_AREA)) {
block(13, "不支持解锁「".AREA."」地区,请将「".AREA."」改用其他解析服务器");
}
// 写入日志(非 playurl
if (SAVE_LOG == 1 && $type != 1) {
write_log();
}
function block($code, $reason){
// 写入日志
if (SAVE_LOG == 1 && $code <= 20) {
define('BAN_CODE', $code);
write_log();
}
// 返回内容
http_response_code(200); // B站就是都返回200
exit('{"code":-'.$code.',"message":"'.$reason.'('.$code.')"}');
}

Loading…
Cancel
Save