From b5243579448b6e9fcaa5a1cfabcac1a37c78769c Mon Sep 17 00:00:00 2001 From: "bt.cn" <287962566@qq.com> Date: Tue, 24 Sep 2019 10:05:27 +0800 Subject: [PATCH] 6.9.36 --- BTPanel/__init__.py | 15 +- BTPanel/static/css/login.css | 2 +- BTPanel/static/img/dep_ico/DOXCX.png | 563 ------------------ BTPanel/static/img/dep_ico/DSMall.png | Bin 0 -> 7073 bytes BTPanel/static/img/dep_ico/JTBC.png | 562 ----------------- BTPanel/static/img/dep_ico/WDJA.png | 563 ------------------ BTPanel/static/img/dep_ico/ZFAKA.png | 562 ----------------- BTPanel/static/img/dep_ico/bfz.png | 561 ----------------- BTPanel/static/img/dep_ico/bgkcrm.png | Bin 0 -> 37450 bytes BTPanel/static/img/dep_ico/demososo.png | Bin 0 -> 466 bytes BTPanel/static/img/dep_ico/iCMS7.png | Bin 0 -> 7518 bytes BTPanel/static/img/dep_ico/lyapi.png | Bin 0 -> 217614 bytes BTPanel/static/img/dep_ico/newlogoedu.png | Bin 0 -> 19899 bytes BTPanel/static/img/dep_ico/qibosoft.png | Bin 0 -> 3798 bytes BTPanel/static/img/dep_ico/shopxo.png | Bin 0 -> 6894 bytes BTPanel/static/img/dep_ico/skm.png | 563 ------------------ BTPanel/static/img/dep_ico/test.png | 562 ----------------- BTPanel/static/img/dep_ico/test2.png | 562 ----------------- BTPanel/static/img/dep_ico/ttttt.png | 562 ----------------- BTPanel/static/img/dep_ico/wp.png | 562 ----------------- BTPanel/static/img/dep_ico/xunruicms.png | Bin 0 -> 44079 bytes BTPanel/static/img/dep_ico/z-blog.png | 561 ----------------- BTPanel/static/img/icon_qcode_android.png | Bin 0 -> 6085 bytes BTPanel/static/img/icon_qcode_ios.png | Bin 0 -> 5759 bytes .../img/soft_ico/ico-Centcount_Analytics.png | 1 + BTPanel/static/img/soft_ico/ico-DBShop.png | 1 + .../static/img/soft_ico/ico-Temmoku_MVC.png | 1 + .../static/img/soft_ico/ico-ThinkPHP-5.0.png | 1 + .../static/img/soft_ico/ico-URLshorting.png | 1 + .../static/img/soft_ico/ico-YoungxjTools.png | 1 + BTPanel/static/img/soft_ico/ico-btp_frps.png | Bin 0 -> 2251 bytes BTPanel/static/img/soft_ico/ico-bty.png | 1 + .../static/img/soft_ico/ico-chengxuxia.png | 1 + .../static/img/soft_ico/ico-codeigniter.png | 1 + BTPanel/static/img/soft_ico/ico-crmeb.png | 1 + BTPanel/static/img/soft_ico/ico-demo.png | Bin 313 -> 0 bytes BTPanel/static/img/soft_ico/ico-disk.png | Bin 313 -> 0 bytes BTPanel/static/img/soft_ico/ico-doxcx.png | 1 + BTPanel/static/img/soft_ico/ico-ecshop.png | 1 + BTPanel/static/img/soft_ico/ico-emlog.png | 1 + BTPanel/static/img/soft_ico/ico-empirecms.png | 1 + BTPanel/static/img/soft_ico/ico-frps_dev.png | Bin 0 -> 10319 bytes BTPanel/static/img/soft_ico/ico-jtbc3.png | 1 + BTPanel/static/img/soft_ico/ico-lovewall.png | 1 + BTPanel/static/img/soft_ico/ico-lvs.png | Bin 313 -> 0 bytes BTPanel/static/img/soft_ico/ico-php_demo.png | Bin 313 -> 0 bytes BTPanel/static/img/soft_ico/ico-phpcms.png | 1 + BTPanel/static/img/soft_ico/ico-portblast.png | Bin 0 -> 165662 bytes BTPanel/static/img/soft_ico/ico-qrpay.png | 1 + BTPanel/static/img/soft_ico/ico-redisutil.png | Bin 313 -> 0 bytes BTPanel/static/img/soft_ico/ico-sentcms.png | 1 + BTPanel/static/img/soft_ico/ico-tipask.png | 1 + BTPanel/static/img/soft_ico/ico-wdja.png | 1 + BTPanel/static/img/soft_ico/ico-webTray.png | Bin 0 -> 4421 bytes BTPanel/static/img/soft_ico/ico-wee7.png | 1 + BTPanel/static/img/soft_ico/ico-wordpress.png | 1 + .../img/soft_ico/ico-y6w_createwebs.png | Bin 0 -> 4106 bytes .../static/img/soft_ico/ico-y6w_speedtest.png | Bin 0 -> 3686 bytes BTPanel/static/img/soft_ico/ico-yichaxin.png | Bin 0 -> 5389 bytes .../static/img/soft_ico/ico-zfaka-zlkb.png | 1 + BTPanel/static/js/config.js | 177 +++++- BTPanel/static/js/database.js | 14 +- BTPanel/static/js/public_backup.js | 15 +- BTPanel/static/js/site.js | 11 + BTPanel/static/js/soft.js | 26 +- BTPanel/templates/default/config.html | 116 +++- BTPanel/templates/default/layout.html | 2 +- BTPanel/templates/default/login.html | 36 ++ class/common.py | 2 +- class/config.py | 83 ++- class/crontab.py | 1 + class/database.py | 4 +- class/files.py | 133 ++++- class/firewalls.py | 1 - class/nginx.py | 3 + class/panelDnsapi.py | 51 +- class/panelLets.py | 46 +- class/panelPlugin.py | 55 +- class/panelSite.py | 82 +-- class/panelTask.py | 5 +- class/password.py | 217 +++++++ class/public.py | 32 +- class/pyotp/__init__.py | 23 + class/pyotp/compat.py | 10 + class/pyotp/hotp.py | 58 ++ class/pyotp/otp.py | 66 ++ class/pyotp/totp.py | 92 +++ class/pyotp/utils.py | 109 ++++ class/san_baseline.py | 1 + class/sewer/dns_providers/dnspod.py | 69 ++- class/site_dir_auth.py | 14 +- class/userlogin.py | 99 ++- runconfig.py | 16 +- test.py | 57 ++ tools.py | 10 +- 95 files changed, 1559 insertions(+), 6401 deletions(-) delete mode 100644 BTPanel/static/img/dep_ico/DOXCX.png create mode 100644 BTPanel/static/img/dep_ico/DSMall.png delete mode 100644 BTPanel/static/img/dep_ico/JTBC.png delete mode 100644 BTPanel/static/img/dep_ico/WDJA.png delete mode 100644 BTPanel/static/img/dep_ico/ZFAKA.png delete mode 100644 BTPanel/static/img/dep_ico/bfz.png create mode 100644 BTPanel/static/img/dep_ico/bgkcrm.png create mode 100644 BTPanel/static/img/dep_ico/demososo.png create mode 100644 BTPanel/static/img/dep_ico/iCMS7.png create mode 100644 BTPanel/static/img/dep_ico/lyapi.png create mode 100644 BTPanel/static/img/dep_ico/newlogoedu.png create mode 100644 BTPanel/static/img/dep_ico/qibosoft.png create mode 100644 BTPanel/static/img/dep_ico/shopxo.png delete mode 100644 BTPanel/static/img/dep_ico/skm.png delete mode 100644 BTPanel/static/img/dep_ico/test.png delete mode 100644 BTPanel/static/img/dep_ico/test2.png delete mode 100644 BTPanel/static/img/dep_ico/ttttt.png delete mode 100644 BTPanel/static/img/dep_ico/wp.png create mode 100644 BTPanel/static/img/dep_ico/xunruicms.png delete mode 100644 BTPanel/static/img/dep_ico/z-blog.png create mode 100644 BTPanel/static/img/icon_qcode_android.png create mode 100644 BTPanel/static/img/icon_qcode_ios.png create mode 100644 BTPanel/static/img/soft_ico/ico-Centcount_Analytics.png create mode 100644 BTPanel/static/img/soft_ico/ico-DBShop.png create mode 100644 BTPanel/static/img/soft_ico/ico-Temmoku_MVC.png create mode 100644 BTPanel/static/img/soft_ico/ico-ThinkPHP-5.0.png create mode 100644 BTPanel/static/img/soft_ico/ico-URLshorting.png create mode 100644 BTPanel/static/img/soft_ico/ico-YoungxjTools.png create mode 100644 BTPanel/static/img/soft_ico/ico-btp_frps.png create mode 100644 BTPanel/static/img/soft_ico/ico-bty.png create mode 100644 BTPanel/static/img/soft_ico/ico-chengxuxia.png create mode 100644 BTPanel/static/img/soft_ico/ico-codeigniter.png create mode 100644 BTPanel/static/img/soft_ico/ico-crmeb.png delete mode 100644 BTPanel/static/img/soft_ico/ico-demo.png delete mode 100644 BTPanel/static/img/soft_ico/ico-disk.png create mode 100644 BTPanel/static/img/soft_ico/ico-doxcx.png create mode 100644 BTPanel/static/img/soft_ico/ico-ecshop.png create mode 100644 BTPanel/static/img/soft_ico/ico-emlog.png create mode 100644 BTPanel/static/img/soft_ico/ico-empirecms.png create mode 100644 BTPanel/static/img/soft_ico/ico-frps_dev.png create mode 100644 BTPanel/static/img/soft_ico/ico-jtbc3.png create mode 100644 BTPanel/static/img/soft_ico/ico-lovewall.png delete mode 100644 BTPanel/static/img/soft_ico/ico-lvs.png delete mode 100644 BTPanel/static/img/soft_ico/ico-php_demo.png create mode 100644 BTPanel/static/img/soft_ico/ico-phpcms.png create mode 100644 BTPanel/static/img/soft_ico/ico-portblast.png create mode 100644 BTPanel/static/img/soft_ico/ico-qrpay.png delete mode 100644 BTPanel/static/img/soft_ico/ico-redisutil.png create mode 100644 BTPanel/static/img/soft_ico/ico-sentcms.png create mode 100644 BTPanel/static/img/soft_ico/ico-tipask.png create mode 100644 BTPanel/static/img/soft_ico/ico-wdja.png create mode 100644 BTPanel/static/img/soft_ico/ico-webTray.png create mode 100644 BTPanel/static/img/soft_ico/ico-wee7.png create mode 100644 BTPanel/static/img/soft_ico/ico-wordpress.png create mode 100644 BTPanel/static/img/soft_ico/ico-y6w_createwebs.png create mode 100644 BTPanel/static/img/soft_ico/ico-yichaxin.png create mode 100644 BTPanel/static/img/soft_ico/ico-zfaka-zlkb.png create mode 100644 class/password.py create mode 100644 class/pyotp/__init__.py create mode 100644 class/pyotp/compat.py create mode 100644 class/pyotp/hotp.py create mode 100644 class/pyotp/otp.py create mode 100644 class/pyotp/totp.py create mode 100644 class/pyotp/utils.py create mode 100644 test.py diff --git a/BTPanel/__init__.py b/BTPanel/__init__.py index 2578db88..0dee9c9f 100644 --- a/BTPanel/__init__.py +++ b/BTPanel/__init__.py @@ -475,7 +475,7 @@ def config(pdata = None): if public.is_local(): data['is_local'] = 'checked' return render_template( 'config.html',data=data) import config - defs = ('get_php_session_path','set_php_session_path','get_cert_source','set_local','set_debug','get_panel_error_logs','clean_panel_error_logs','get_basic_auth_stat','set_basic_auth','get_cli_php_version','get_tmp_token','set_cli_php_version','DelOldSession', 'GetSessionCount', 'SetSessionConf', 'GetSessionConf','get_ipv6_listen','set_ipv6_status','GetApacheValue','SetApacheValue','GetNginxValue','SetNginxValue','get_token','set_token','set_admin_path','is_pro','get_php_config','get_config','SavePanelSSL','GetPanelSSL','GetPHPConf','SetPHPConf','GetPanelList','AddPanelInfo','SetPanelInfo','DelPanelInfo','ClickPanelInfo','SetPanelSSL','SetTemplates','Set502','setPassword','setUsername','setPanel','setPathInfo','setPHPMaxSize','getFpmConfig','setFpmConfig','setPHPMaxTime','syncDate','setPHPDisable','SetControl','ClosePanel','AutoUpdatePanel','SetPanelLock') + defs = ('get_qrcode_data','check_two_step','set_two_step_auth','get_key','get_php_session_path','set_php_session_path','get_cert_source','set_local','set_debug','get_panel_error_logs','clean_panel_error_logs','get_basic_auth_stat','set_basic_auth','get_cli_php_version','get_tmp_token','set_cli_php_version','DelOldSession', 'GetSessionCount', 'SetSessionConf', 'GetSessionConf','get_ipv6_listen','set_ipv6_status','GetApacheValue','SetApacheValue','GetNginxValue','SetNginxValue','get_token','set_token','set_admin_path','is_pro','get_php_config','get_config','SavePanelSSL','GetPanelSSL','GetPHPConf','SetPHPConf','GetPanelList','AddPanelInfo','SetPanelInfo','DelPanelInfo','ClickPanelInfo','SetPanelSSL','SetTemplates','Set502','setPassword','setUsername','setPanel','setPathInfo','setPHPMaxSize','getFpmConfig','setFpmConfig','setPHPMaxTime','syncDate','setPHPDisable','SetControl','ClosePanel','AutoUpdatePanel','SetPanelLock') return publicObject(config.config(),defs,None,pdata); @app.route('/ajax',methods=method_all) @@ -518,7 +518,11 @@ def panel_data(pdata = None): @app.route('/code') def code(): - import vilidate,time + try: + import vilidate,time + except: + os.system("pip install Pillow==5.4.1 -I") + return "Pillow not install!" code_time = cache.get('codeOut') if code_time: return u'Error: Don\'t request validation codes frequently'; vie = vilidate.vieCode(); @@ -1007,10 +1011,13 @@ def publicObject(toObject,defs,action=None,get = None): if hasattr(get,'path'): get.path = get.path.replace('//','/').replace('\\','/'); - if get.path.find('..') != -1: return public.ReturnJson(False,'不安全的路径'),json_header + if get.path.find('./') != -1: return public.ReturnJson(False,'不安全的路径'),json_header if get.path.find('->') != -1: get.path = get.path.split('->')[0].strip(); - + + if hasattr(toObject,'site_path_check'): + if not toObject.site_path_check(get): return public.ReturnJson(False,'越权的操作!'),json_header + for key in defs: if key == get.action: fun = 'toObject.'+key+'(get)' diff --git a/BTPanel/static/css/login.css b/BTPanel/static/css/login.css index 107df87a..a0d66041 100644 --- a/BTPanel/static/css/login.css +++ b/BTPanel/static/css/login.css @@ -1 +1 @@ -body{background-color:#444;font-family:华文黑体,"Microsoft YaHei",微软雅黑,STHei,"Helvetica Neue",Helvetica,Arial,sans-serif}input{-webkit-appearance:none}.main .login{background-color:#fff;border-radius:4px;height:290px;left:50%;margin-left:-220px;margin-top:-180px;padding:35px 40px 50px;position:absolute;top:50%;width:360px}.main .login .rlogo{text-align:center;font-size:26px;color:#444;cursor:pointer;height:40px;margin-bottom:40px;overflow:hidden}.main .login .title{color:#444;font-family:"微软雅黑";font-size:28px;margin:-10px 0 46px;text-align:center}.main .login .line{height:42px;margin-bottom:20px;line-height:42px;position:relative}.main .login .line span{width:70px;float:left;color:#757584}.main .login .line .inputtxt{background:transparent;float:left;width:338px;height:30px;line-height:30px;border:#d1d1d1 1px solid;padding:5px 10px;position:relative;z-index:1;box-shadow:0 3px 5px -4px rgba(0,0,0,0.4) inset,-1px 0 3px -2px rgba(0,0,0,0.1) inset;border-radius:3px}.main .login .line .code{width:230px}.main .login .line .getcode,.main .login .line .picgetcode{width:100px;text-align:center;height:38px;line-height:38px;border:#cacad9 1px solid;background-color:#dbdbea;color:#757584;font-size:14px;float:left;margin-left:17px;cursor:pointer}.main .login .line .getcode.no-drop{cursor:no-drop}.main .login .line .getcode.pointer{border:#47acff 1px solid;background-color:#47acff;color:#fff}.main .login .line .picgetcode img{width:100%;height:100%}.main .login .line .codemsg{background:#e53451;border-radius:3px;color:#fff;font-size:12px;height:21px;line-height:22px;overflow:hidden;padding:0 6px;position:absolute;right:127px;text-align:right;top:5px;z-index:0}.main .login .line .inputtxt:focus{border:#70c3ec 1px solid;box-shadow:0 0 5px #eee}.main .login .yzm .inputtxt{width:64%}.login_btn input{width:100%;height:44px;background:#20a53a;background:linear-gradient(#20a53a,#189d32);box-shadow:inset 0 1px 2px #30ad42;color:#fff;text-shadow:#00851a 0 -1px 0;border:1px solid #20a53a;text-align:center;font-size:16px;color:#fff;border-radius:3px;cursor:pointer}.login_btn input:hover{background:#10952a;background:linear-gradient(#10952a,#088d22);border:1px solid #10952a}.login-link{text-align:right;margin-top:22px}.login-link span{color:#cacad9;padding:0 8px;text-align:center}.login-link a{color:#757584}.copyright{color:#9d9d9d;text-align:center;margin-top:-50px;position:relative;z-index:3}.copyright a{color:#9d9d9d;text-decoration:none}.pwinfo{bottom:19px;color:#999;position:absolute}.resetpw{bottom:20px;color:#20a53a;position:absolute;right:40px}.Validform_checktip{color:#999;font-size:12px;height:24px;line-height:24px;overflow:hidden;padding:0 6px;position:absolute;right:10px;text-align:right;top:14px;z-index:1}.Validform_wrong{background:#e53451;border-radius:3px;color:#fff;float:right}.Validform_right{padding:0 10px;color:#71b83d;background:url(../images/right.png) no-repeat right center/16px auto}.main .login .line .Validform_error{border:#e53451 1px solid;box-shadow:0 0 2px #ea5d74}.main .login .yzm .Validform_wrong{background:#e53451;border-radius:3px;color:#fff;font-size:12px;height:24px;line-height:24px;overflow:hidden;padding:0 6px;position:absolute;right:127px;text-align:right;top:14px;z-index:1}.main .login .yzm .Validform_right{color:#71b83d;padding:0 10px;right:130px}.main .login .line .inputcode{width:208px}.zun-form{background:#fff none repeat scroll 0 0;border-radius:5px;color:#888;font:12px "Helvetica Neue",Helvetica,Arial,sans-serif;margin-left:auto;margin-right:auto;max-width:90%;padding:20px 10px;text-shadow:1px 1px 1px #fff}.zun-form-new{background:#FFF;padding:20px 0 0;font:12px "Helvetica Neue",Helvetica,Arial,sans-serif;color:#888}.zun-form-new .line{padding:5px 20px}.zun-form-new .line:first-child{padding-top:0}.zun-form-new .line:after{display:table;content:"";clear:both}.zun-form-new h1{font:25px "Helvetica Neue",Helvetica,Arial,sans-serif;padding:0 0 10px 40px;display:block;border-bottom:1px solid #dadada;margin:-10px -30px 30px -30px;color:#888}.zun-form-new h1>span{display:block;font-size:11px}.zun-form-new label{display:block;float:left;width:80px}.zun-form-new .info-r{margin-bottom:5px;margin-left:80px;position:relative;color:#666}.zun-form-new .info-r label{margin-bottom:0;padding-top:5px}.zun-form-new .info-r label input{margin-right:5px}.zun-form-new .info-r p{margin-top:10px;color:#999}.zun-form-new label>span{float:left;text-align:right;padding-right:10px;margin-top:8px;color:#565656;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold}.zun-form-new input[type="text"],.zun-form-new input[type="email"],.zun-form-new input[type="password"],.zun-form-new input[type="number"],.zun-form-new textarea,.zun-form-new select,.webEdit-box input,.webEdit-box textarea,.webEdit-box select{border:1px solid #ccc;color:#888;height:30px;line-height:30px;margin-right:6px;margin-top:2px;outline:0 none;padding-left:5px;width:100%;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.zun-form-new input:focus,.zun-form-new input:active,.zun-form-new select:focus,.zun-form-new select:active,.dataTables_paginate select:focus,.dataTables_paginate select:active,textarea:focus,textarea:active,.webEdit-box input:focus,.webEdit-box select:focus,.webEdit-box input:active,.webEdit-box select:active,.dlt-text:focus,.sp-text:focus{border:#66afe9 1px solid;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.zun-form-new select{height:32px;padding:0\9;margin:0\9}.zun-form-new textarea{height:100px;padding:5px 0 0 5px;width:80%}.zun-form-new .submit-btn,.getfile-btn{text-align:right;padding:7px 20px 10px;background:#f6f8f8;border-top:1px solid #edf1f2;margin-top:10px;clear:both}.zun-form-new .submit-btn button:first-child,.getfile-btn button:first-child{margin-right:4px}.zun-form-new .button{background:#FFF;border:1px solid #CCC;padding:10px 25px 10px 25px;color:#333;border-radius:0}.zun-form-new .button:hover{color:#333;background-color:#ebebeb;border-color:#adadad}.btn{display:inline-block;padding:5px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:3px}.btn-sm{border-radius:3px;font-size:12px;line-height:1.5;padding:4px 10px}.btn-danger{background-color:#cbcbcb;border-color:#cbcbcb;color:#fff}.btn-danger:focus,.btn-danger.focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:focus,.btn-success.focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}@media screen and (max-width:640px){body{background-color:#eee}.main .login .rlogo{background-color:rgba(0,0,0,0.8);color:#fff;font-size:20px;height:2.8em;line-height:2.8em;margin:0 -3.3% 25px -3.3%}.main .login{background-color:#eee;border-radius:0;height:330px;left:0;margin-left:0;margin-top:0;padding:0 3%;position:absolute;top:0;width:94%}.main .login .line .inputtxt{background-color:#fff;border:1px solid #d1d1d1;width:93.6%;padding:5px 3%;font-size:1.2em}.main .login .yzm .inputtxt{width:57%}} \ No newline at end of file +body{background-color:#444;font-family:华文黑体,"Microsoft YaHei",微软雅黑,STHei,"Helvetica Neue",Helvetica,Arial,sans-serif}input{-webkit-appearance:none}.main .login{background-color:#fff;border-radius:4px;height:290px;left:50%;margin-left:-220px;margin-top:-180px;padding:35px 40px 50px;position:absolute;top:50%;width:360px}.main .login .rlogo{text-align:center;font-size:26px;color:#444;cursor:pointer;height:40px;margin-bottom:40px;overflow:hidden}.main .login .title{color:#444;font-family:"微软雅黑";font-size:28px;margin:-10px 0 46px;text-align:center}.main .login .line{height:42px;margin-bottom:20px;line-height:42px;position:relative}.main .login .line span{width:70px;float:left;color:#757584}.main .login .line .inputtxt{background:transparent;float:left;width:338px;height:30px;line-height:30px;border:#d1d1d1 1px solid;padding:5px 10px;position:relative;z-index:1;box-shadow:0 3px 5px -4px rgba(0,0,0,0.4) inset,-1px 0 3px -2px rgba(0,0,0,0.1) inset;border-radius:3px}.main .login .line .code{width:230px}.main .login .line .getcode,.main .login .line .picgetcode{width:100px;text-align:center;height:38px;line-height:38px;border:#cacad9 1px solid;background-color:#dbdbea;color:#757584;font-size:14px;float:left;margin-left:17px;cursor:pointer}.main .login .line .getcode.no-drop{cursor:no-drop}.main .login .line .getcode.pointer{border:#47acff 1px solid;background-color:#47acff;color:#fff}.main .login .line .picgetcode img{width:100%;height:100%}.main .login .line .codemsg{background:#e53451;border-radius:3px;color:#fff;font-size:12px;height:21px;line-height:22px;overflow:hidden;padding:0 6px;position:absolute;right:127px;text-align:right;top:5px;z-index:0}.main .login .line .inputtxt:focus{border:#70c3ec 1px solid;box-shadow:0 0 5px #eee}.main .login .yzm .inputtxt{width:64%}.login_btn input{width:100%;height:44px;background:#20a53a;background:linear-gradient(#20a53a,#189d32);box-shadow:inset 0 1px 2px #30ad42;color:#fff;text-shadow:#00851a 0 -1px 0;border:1px solid #20a53a;text-align:center;font-size:16px;color:#fff;border-radius:3px;cursor:pointer}.login_btn input:hover{background:#10952a;background:linear-gradient(#10952a,#088d22);border:1px solid #10952a}.login-link{text-align:right;margin-top:22px}.login-link span{color:#cacad9;padding:0 8px;text-align:center}.login-link a{color:#757584}.copyright{color:#9d9d9d;text-align:center;margin-top:-50px;position:relative;z-index:3}.copyright a{color:#9d9d9d;text-decoration:none}.pwinfo{bottom:19px;color:#999;position:absolute}.resetpw{bottom:20px;color:#20a53a;position:absolute;right:40px}.Validform_checktip{color:#999;font-size:12px;height:24px;line-height:24px;overflow:hidden;padding:0 6px;position:absolute;right:10px;text-align:right;top:14px;z-index:1}.Validform_wrong{background:#e53451;border-radius:3px;color:#fff;float:right}.Validform_right{padding:0 10px;color:#71b83d;background:url(../images/right.png) no-repeat right center/16px auto}.main .login .line .Validform_error{border:#e53451 1px solid;box-shadow:0 0 2px #ea5d74}.main .login .yzm .Validform_wrong{background:#e53451;border-radius:3px;color:#fff;font-size:12px;height:24px;line-height:24px;overflow:hidden;padding:0 6px;position:absolute;right:127px;text-align:right;top:14px;z-index:1}.main .login .yzm .Validform_right{color:#71b83d;padding:0 10px;right:130px}.main .login .line .inputcode{width:208px}.zun-form{background:#fff none repeat scroll 0 0;border-radius:5px;color:#888;font:12px "Helvetica Neue",Helvetica,Arial,sans-serif;margin-left:auto;margin-right:auto;max-width:90%;padding:20px 10px;text-shadow:1px 1px 1px #fff}.zun-form-new{background:#FFF;padding:20px 0 0;font:12px "Helvetica Neue",Helvetica,Arial,sans-serif;color:#888}.zun-form-new .line{padding:5px 20px}.zun-form-new .line:first-child{padding-top:0}.zun-form-new .line:after{display:table;content:"";clear:both}.zun-form-new h1{font:25px "Helvetica Neue",Helvetica,Arial,sans-serif;padding:0 0 10px 40px;display:block;border-bottom:1px solid #dadada;margin:-10px -30px 30px -30px;color:#888}.zun-form-new h1>span{display:block;font-size:11px}.zun-form-new label{display:block;float:left;width:80px}.zun-form-new .info-r{margin-bottom:5px;margin-left:80px;position:relative;color:#666}.zun-form-new .info-r label{margin-bottom:0;padding-top:5px}.zun-form-new .info-r label input{margin-right:5px}.zun-form-new .info-r p{margin-top:10px;color:#999}.zun-form-new label>span{float:left;text-align:right;padding-right:10px;margin-top:8px;color:#565656;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold}.zun-form-new input[type="text"],.zun-form-new input[type="email"],.zun-form-new input[type="password"],.zun-form-new input[type="number"],.zun-form-new textarea,.zun-form-new select,.webEdit-box input,.webEdit-box textarea,.webEdit-box select{border:1px solid #ccc;color:#888;height:30px;line-height:30px;margin-right:6px;margin-top:2px;outline:0 none;padding-left:5px;width:100%;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.zun-form-new input:focus,.zun-form-new input:active,.zun-form-new select:focus,.zun-form-new select:active,.dataTables_paginate select:focus,.dataTables_paginate select:active,textarea:focus,textarea:active,.webEdit-box input:focus,.webEdit-box select:focus,.webEdit-box input:active,.webEdit-box select:active,.dlt-text:focus,.sp-text:focus{border:#66afe9 1px solid;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.zun-form-new select{height:32px;padding:0\9;margin:0\9}.zun-form-new textarea{height:100px;padding:5px 0 0 5px;width:80%}.zun-form-new .submit-btn,.getfile-btn{text-align:right;padding:7px 20px 10px;background:#f6f8f8;border-top:1px solid #edf1f2;margin-top:10px;clear:both}.zun-form-new .submit-btn button:first-child,.getfile-btn button:first-child{margin-right:4px}.zun-form-new .button{background:#FFF;border:1px solid #CCC;padding:10px 25px 10px 25px;color:#333;border-radius:0}.zun-form-new .button:hover{color:#333;background-color:#ebebeb;border-color:#adadad}.btn{display:inline-block;padding:5px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:3px}.btn-sm{border-radius:3px;font-size:12px;line-height:1.5;padding:4px 10px}.btn-danger{background-color:#cbcbcb;border-color:#cbcbcb;color:#fff}.btn-danger:focus,.btn-danger.focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:focus,.btn-success.focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}@media screen and (max-width:640px){body{background-color:#eee}.main .login .rlogo{background-color:rgba(0,0,0,0.8);color:#fff;font-size:20px;height:2.8em;line-height:2.8em;margin:0 -3.3% 25px -3.3%}.main .login{background-color:#eee;border-radius:0;height:330px;left:0;margin-left:0;margin-top:0;padding:0 3%;position:absolute;top:0;width:94%}.main .login .line .inputtxt{background-color:#fff;border:1px solid #d1d1d1;width:93.6%;padding:5px 3%;font-size:1.2em}.main .login .yzm .inputtxt{width:57%}}.verification_view{padding:30px 40px}.verification_view .v_title{text-align:center;font-size:21px;color:#444;height:40px;margin-bottom:15px;overflow:hidden}.verification_view .v_btn input{width:100%;height:40px;font-size:15px;background:#20a53a;background:linear-gradient(#20a53a,#189d32);box-shadow:inset 0 1px 2px #30ad42;color:#fff;text-shadow:#00851a 0 -1px 0;border:1px solid #20a53a;text-align:center;color:#fff;border-radius:3px;cursor:pointer}.verification_view .v_input input{width:100%;height:40px;line-height:30px;border:#d1d1d1 1px solid;padding:4px 10px;z-index:1;box-shadow:0 3px 5px -4px rgba(0,0,0,0.4) inset,-1px 0 3px -2px rgba(0,0,0,0.1) inset;border-radius:3px;outline:none;box-sizing:border-box}.verification_view .v_input{margin-bottom:15px}.verification_view .v_tips{color:#777;font-size:13px;margin-top:18px} \ No newline at end of file diff --git a/BTPanel/static/img/dep_ico/DOXCX.png b/BTPanel/static/img/dep_ico/DOXCX.png deleted file mode 100644 index 74a38b79..00000000 --- a/BTPanel/static/img/dep_ico/DOXCX.png +++ /dev/null @@ -1,563 +0,0 @@ - - - - - - - - - - 宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板 - - - - - - - - - - -
- -
- -
- - - - -
-
宝塔邀请大使赠送您
-
3188元礼包
-
立即领取
-
-
-
- -
-
-
- -
-
-

免费加入宝塔邀请大使,帮助他人同时还能赚钱

立即免费加入
-
-
- 尊云,价格厚道的云服务器,6核10G,99元 -
- -
-
-
-

远程桌面连接工具

-

下载

-
-
-
-
-

Linux面板命令大全

-

查看

-
-
-
-
-

IDC推荐

-

查看

-
-
-
-
-
-
-
-

宝塔币商城

-

查看

-
-
-
-
-

宝塔跑分排行榜

-

查看

-
-
-
-
- -
- 宝塔运维 - 付费运维已停止接单,论坛可免费求助 -
- 点击查看 -
-
- -
- 开发者中心 - 诚邀开发者入驻,让创作更有价值 -
- 点击查看 -
-
-
-
-
- -
-
-

合作伙伴

-

申请IDC定制版合作

-
-
- 尊云 - 唯一网络 - DNS - - 亚洲诚信 - 阿里云 - 京东云 - 又拍云 - 网堤安全 -
-
- - - -
- - -
- - -
- - -
- - - - - - - - - \ No newline at end of file diff --git a/BTPanel/static/img/dep_ico/DSMall.png b/BTPanel/static/img/dep_ico/DSMall.png new file mode 100644 index 0000000000000000000000000000000000000000..3977cd33f65ebad2883d2c561fd775d43d6e0b7b GIT binary patch literal 7073 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 - - - - - - - - - 宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板 - - - - - - - - - - -
- - - - - - -
-
宝塔邀请大使赠送您
-
3188元礼包
-
立即领取
-
-
-
- -
-
-
- -
-
-

免费加入宝塔邀请大使,帮助他人同时还能赚钱

立即免费加入
-
-
- 尊云,价格厚道的云服务器,6核10G,99元 -
- -
-
-
-

远程桌面连接工具

-

下载

-
-
-
-
-

Linux面板命令大全

-

查看

-
-
-
-
-

IDC推荐

-

查看

-
-
-
-
-
-
-
-

宝塔币商城

-

查看

-
-
-
-
-

宝塔跑分排行榜

-

查看

-
-
-
-
- -
- 宝塔运维 - 付费运维已停止接单,论坛可免费求助 -
- 点击查看 -
-
- -
- 开发者中心 - 诚邀开发者入驻,让创作更有价值 -
- 点击查看 -
-
-
-
-
- -
-
-

合作伙伴

-

申请IDC定制版合作

-
-
- 尊云 - 唯一网络 - DNS - - 亚洲诚信 - 阿里云 - 京东云 - 又拍云 - 网堤安全 -
-
- - - -
- - -
- - -
- - -
- - - - - - - - - \ No newline at end of file diff --git a/BTPanel/static/img/dep_ico/WDJA.png b/BTPanel/static/img/dep_ico/WDJA.png deleted file mode 100644 index 74a38b79..00000000 --- a/BTPanel/static/img/dep_ico/WDJA.png +++ /dev/null @@ -1,563 +0,0 @@ - - - - - - - - - - 宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板 - - - - - - - - - - -
- - - - - - -
-
宝塔邀请大使赠送您
-
3188元礼包
-
立即领取
-
-
-
- -
-
-
- -
-
-

免费加入宝塔邀请大使,帮助他人同时还能赚钱

立即免费加入
-
-
- 尊云,价格厚道的云服务器,6核10G,99元 -
- -
-
-
-

远程桌面连接工具

-

下载

-
-
-
-
-

Linux面板命令大全

-

查看

-
-
-
-
-

IDC推荐

-

查看

-
-
-
-
-
-
-
-

宝塔币商城

-

查看

-
-
-
-
-

宝塔跑分排行榜

-

查看

-
-
-
-
- -
- 宝塔运维 - 付费运维已停止接单,论坛可免费求助 -
- 点击查看 -
-
- -
- 开发者中心 - 诚邀开发者入驻,让创作更有价值 -
- 点击查看 -
-
-
-
-
- -
-
-

合作伙伴

-

申请IDC定制版合作

-
-
- 尊云 - 唯一网络 - DNS - - 亚洲诚信 - 阿里云 - 京东云 - 又拍云 - 网堤安全 -
-
- - - -
- - -
- - -
- - -
- - - - - - - - - \ No newline at end of file diff --git a/BTPanel/static/img/dep_ico/ZFAKA.png b/BTPanel/static/img/dep_ico/ZFAKA.png deleted file mode 100644 index 37a9c0a9..00000000 --- a/BTPanel/static/img/dep_ico/ZFAKA.png +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - - - - - 宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板 - - - - - - - - - - -
- - - - - - -
-
宝塔邀请大使赠送您
-
3188元礼包
-
立即领取
-
-
-
- -
-
-
- -
-
-

免费加入宝塔邀请大使,帮助他人同时还能赚钱

立即免费加入
-
-
- 尊云,价格厚道的云服务器,6核10G,99元 -
- -
-
-
-

远程桌面连接工具

-

下载

-
-
-
-
-

Linux面板命令大全

-

查看

-
-
-
-
-

IDC推荐

-

查看

-
-
-
-
-
-
-
-

宝塔币商城

-

查看

-
-
-
-
-

宝塔跑分排行榜

-

查看

-
-
-
-
- -
- 宝塔运维 - 付费运维已停止接单,论坛可免费求助 -
- 点击查看 -
-
- -
- 开发者中心 - 诚邀开发者入驻,让创作更有价值 -
- 点击查看 -
-
-
-
-
- -
-
-

合作伙伴

-

申请IDC定制版合作

-
-
- 尊云 - 唯一网络 - DNS - - 亚洲诚信 - 阿里云 - 京东云 - 又拍云 - 网堤安全 -
-
- - - -
- - -
- - -
- - -
- - - - - - - - - \ No newline at end of file diff --git a/BTPanel/static/img/dep_ico/bfz.png b/BTPanel/static/img/dep_ico/bfz.png deleted file mode 100644 index 1ed88c89..00000000 --- a/BTPanel/static/img/dep_ico/bfz.png +++ /dev/null @@ -1,561 +0,0 @@ - - - - - - - - - - 宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板 - - - - - - - - - - -
- - - - - - -
-
宝塔邀请大使赠送您
-
3188元礼包
-
立即领取
-
-
-
-

免费加入宝塔邀请大使,帮助他人同时还能赚钱

立即免费加入
- -
-
-
- -
-
-
-
- 尊云,价格厚道的云服务器,6核10G,99元 -
- -
-
-
-

远程桌面连接工具

-

下载

-
-
-
-
-

Linux面板命令大全

-

查看

-
-
-
-
-

IDC推荐

-

查看

-
-
-
-
-
-
-
-

宝塔币商城

-

查看

-
-
-
-
-

宝塔跑分排行榜

-

查看

-
-
-
-
- -
- 宝塔运维 - 付费运维已停止接单,论坛可免费求助 -
- 点击查看 -
-
- -
- 开发者中心 - 诚邀开发者入驻,让创作更有价值 -
- 点击查看 -
-
-
-
-
- -
-
-

合作伙伴

-

申请IDC定制版合作

-
-
- 尊云 - 唯一网络 - DNS - - 亚洲诚信 - 阿里云 - 京东云 - 又拍云 - 网堤安全 -
-
- - - -
- - -
- - -
- - -
- - - - - - - - - \ No newline at end of file diff --git a/BTPanel/static/img/dep_ico/bgkcrm.png b/BTPanel/static/img/dep_ico/bgkcrm.png new file mode 100644 index 0000000000000000000000000000000000000000..ebfacc101173430b8787871ec149b03d03671dce GIT binary patch literal 37450 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 Fr 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 Nn7|PRbug#c{{b5}pWpxh literal 0 HcmV?d00001 diff --git a/BTPanel/static/img/dep_ico/demososo.png b/BTPanel/static/img/dep_ico/demososo.png new file mode 100644 index 0000000000000000000000000000000000000000..acc59c5e7605644ae9804b6c0648d30cd585bb48 GIT binary patch literal 466 zcmeAS@N?(olHy`uVBq!ia0vp^20*OA!3-q(BRide6mzkYX9x!e$L)vy4}e_b0G|+7 zhME5-T>kH{`9Ba89Q%La&3}bu{|`L-pRoV`gU|mr-2X2y|9``o{{cJy8?5>N;phJa zH~$xE)}01w=PdAuEM{QfI}E~%$MaXD00resTq8FMGa zV$u8d@LbB^nwXfB&z)n>+Drd+)CuI@yavo=Qx3bjN<5_NwVC_U>M=Iisw$ zs@Fq`eS0En<;9O4j~En!*k`LGG8Ei5-*ex8!>M99=D&|7N-J#1+t#4+l0`1o=-|4^ z>=CI~<8B$Au&QkEOjuwkbztozMwLdNoF7^+YMT@~NvqRD$8>1m5TX7f7(TmybU@Se5S|yzuk-pKd8W$UjU1 zJXQJr8PqjnGl&)zhla>WLM2d8c_>64CJB>~RZvh6he$(VP${Ui6iiwIrT~|bhC`u{ zzaGAGZ#Y*sxCK(@FJI>^RX$8WfG=E1DkvyOGDt=ei*uKPDJd!a;gFV=IJc1S5Ag|b z36}8j=l`1liS|d~JbVK@us)DKj4n5@fdQ&~=aK$%3f{i|qV@6rYnjd$Oe)yLR|+Nx z{WGP%4ULWe|EAvF|FZTEut5Ji-v5@^-zvlxEoFiB#|Gk1=Nsq7|HqXtTnmSG3Bcm4 zuvo9ZSJ4cE4Z!+iu)Yv2OF4**hmR{Z$p0VK#>Q}cAO8Rs9~4?2smgbbm-O&(h0AEk zKsAv_MQJUV5)7uTpoo;#(uOH2YRPEAU|L$ze`AqYRG>H7C*W_a>%Xx|{}KBq5xjlR zJtNULk6UP09URsh@{b9_J^phn^8b5Pd4pcc;KV;SHg(j4TOcvFVdXWajv6i~A z(Mss>bC8?QN}CV(O>~OPFy<#EBTJL=o+qX-KGGRzgO!r_z%ZEM9Akn5h++AnIcuD* zf}vFH^e0uPv-zs#aL?E4?|#V_E{07X6s=cZf3-5~x-T!;PImL#b@7sRdlKLW;foti@eP5pu2JZFsP0E|mT}Q$8Km6jl!c|NTgxYTT z4$f9{D}*++&6=t@#(N@$e$A?Ki%!_-&hzXv3R2XmkIq`E`rsZd@dO`RbO)tPq-^hF zQYk_w=ux(Gw)!Qo$=C?F;N#a_k=w!fT@Ba>o3L~kUPIPbI8>$8ti0CgYfrosvhcz> z>i`HG?J^PqG2IKMfjiO>U9|-6ZmUFeLZN3Xn;&>r!p3K9a8SS6?fq$lN@{FEQ##T>(O@f!(7A@-}2e+!k^ zhT+f`)@cEQ{?`u7Dclkn<6yb5T<&QSms^6lfCVrUU%XBd+#^1=({Zsbo6rGLsaI*1 zPN*}qeU{=cEFT(1N19CyRS#G*Z- z-p^-LPQ719F*DX}4>SYCOXoj6%%#cV})sVAT7&8ceYA`0&?bs!tu&{f#_ zO0i!h1mF>RL z9Bbwgr`Hg`1|KAqqnqK?J=Wz`&q68J^jWa|QeE9t>_w=r#U;XM@YKbE(HdJyvP17g zE)6F%qQkrh-5?eCh8t~BhlJQ|2`?eXZ@g~8XRboS&yrT4TGl}*Zm*(+P|ht~K@Naw zKelCsIecZ=_1-S89nFD{jAFHr@uAw*HL`eVCQ!+v3{RmqUvOuAQb#!(R;FD}z#Bk` zo5>rYIGsPk%Te>X0KXnkOB80?(?%}jnKWuL*(vZ=jE+0E$Hp8_zsOX&V2(`%F!&3t z7H?-u`m?sR9nYw974MdOm(N?+Oei_hU+m3@`Ie}85cB=u%H_VU%8iH77!XP96vy`b z&GK5!hsGxR)kK8WTTYFa_QuMGmii3UY;)|LDk1rZ-~8hJr*s3FrbJ(@DMKO10%w6b z4c)UOO12@ny>8*$MYi(siF+g8NxT~HiAL+3K;+pklC(9O<*mUfErdjPg;w`rB%OX; z4PU;~O9v|d?9k)%;uO&bL20vLMGM>#rcH|?XQo^qRVfxv_a5MwNhea7d-mRdHRQ+G zaPd{eTQ>*%%RYhR#EN{LV~Ssp>po;PlKL_+PO|-Fg=mr-t9EO3$g?E;HM(5u8wwT` zDL8@iX9ss%|6;oLhM*KD@V-x#lzTAmao+7YjaMQudyh21W@We17pCUPx6csWvKpF+ zb=QjznrAl)#nC-4&VmLCWR9|*8+>@|%e$qRJB+GQ=k@xzQXa?wVYkoI-9tD`I_mEE0K+ifs^y(Y?Aqm5VB7mU8-d7KN zLz{(^_afW37!JK`cKVwN9z{X4ZqASBX)du7`X}%|JKi+5)PjZyOfxcuwu1$PM**6W z0J1*7$uM^^@26*6$etrqIK-$8hJWsgT7LX~RV#n?J9cTM zhKeC2NUothJrZ)^Y=lZf`$3q=Az5W+B6Iek=SiGd&=qnf@2_W01I_7`Z!3)a-+g0z zk+XG$;2e_gA}t}SGHyArB%OefyaH&)g+#9T9AxO}=Z@O?SL<~KRmu(BeXBFdNpU~-O+=;}Z$e`K!8#+YY&-6(LyBwu zm}KD1FWP~ZAu(qSbIKEt)h?Iam|2~18!27a!I6QU&stVjQz%}aYToO}(X;0XQS*eFPXU92q`gyBS+fVF`zX(%(FT;FK{xzOmi3hr%Z_}YXV zo3$#FbIO{75@a;f8f1qajpD_%>6%EqvTuPd7@Ycs}nZV*nf& zU((7Mm%02gf@bmc6%qC{#tKr?Zp{;Vh)DOxST5$zPjyszF!h+w0|o|Kc}BwaM%X~J z?xBAAL(2mApm!aI>jsy+;;>=Fphee2Uw(U&sW2yP*(Y1Hp+q9FyD7Xt0#E1fI|si} z5oAPo7J79x?1v_U#FzLqLXO@OomA#E&ZX&uJZ#_h)i4=w^_$5Tr#47mgxTXgKsH-% z4|=Dzv@{TksuZ99lH7bo-#KTU{lXXKB2dN>e^eD0S;^1HP`ThxAUf_6gJFsdV+xLp z-AU;1%4+Xl;sS;#;f=IRQG|ArW8;WcU2@<9ZFp#x`ONQ&yHxSg^zG~Z18P`K*{fAV zDPakQHO`^kxaAD@w_=%;Z+iEdRLBOS^$pF@)m<%tURV*p!E?Z>I!f=iQEp=Vln;Rw zTyIrIe}OK#U)n6-v;x5o=zad~mQzSdI^@+|JL#%p< zW>m?`I@mu*C+EW!m|PKjZ*ZD9*2VWc@W_Cd(Un1=; ze4I06Pe|N-{9rThXlt~$AGzP()!lQyknB=o3VR^jTGlSWKD1{$%jT?)e*diosn=?d zDyQj8BLgo^l{AMQ$cQicfEe>P9A|gq-SbsUlTz;_aOcg9>(LScvzPu=LS5n`vo^bndFb#;;7%xK}rdUV=81!7GU+G=lr(#p@QR+9-&J8OCLc zOM9P`kPZxR@*Q7-9coxph{f1d5R};gTqS#6)^5w)7sY!+lHL5pe#-~i!4$^P5)}$0 zwh!9it5IPB&KE#UW&j_am;mueU6+DXSVBg-nA7aZi;Z>jO9!I7+1^{Ht3~N^EQ(Ps zx(YO5I=P}gKi;T4mZzUQa&MA(O!EUr$%|S3PJhu_Ep}}6wl(#YDCv-9cCNOgrKv@r zlfF1<-iwDk%8>?oUmQ~uWCl(vBdCcUPSRY}C0xM6 zOg~TaXB~7#0ithPl6GM3B#ho%<^0M!<^v{h8L09@vN>bJQyZQ5g|cpuPF?~< z6qNZbDQkBJC4P2qADdA#Bi6Hx)v|>f{+PabE%Ep{2Zll{QS-z+(WG$kL~5TM%pxo| zz35J8%{@)gE2PhUJG+1q>eosTGkf{|NmOXZfpW))^%!jbCMBS+DU^9pzT&cR{P(;j zOVP`xvoqUNgm4C-_eMxh3Jt@{_}o(^Sq-v7p55c@6-A2qM~u|1F#z)PGj^tfHYRnu zvexUu@hd}U0RvfM%s|)IqC;;W8S#k-8~FsIJo(=Eg)}EdURL8)07)1hl~~>+;m~m0 z2>apeQZZ_;+C?bjyjrCNTqNi0@064Xut;=5YRtt~T3=3RXpMiwt-OjKah9(^ zbRDOxz$rsij!C0B^Amyywqr~zK2AGJWW?_0zrjd;1~6VP?S7GWeCrfeYw9N}X3{pf zHl4!PD}E!pjWkVaUjp;(3-AlrdG#$rqlsH7FLo;hmy=~1tmZVJW}ZGp-)#1R{9Vy9 zHb$q3JL%g}kF)T|PKZF|k9=u-3XaG+_1gFcpknQ4gzl2eTsC>eb(|t=lnN6E%GaTqJa7$E14`b0?H-GaSFHhgmO8`}%zC zl}YPBzfE2LyYvQis)PE_Lh>=5&+Dv&E5#Ew^}iMohJ9Bv%5G;$lM;E_>Q=1~M{I=6 zgxs5umbB~Uo0B=!ACkce9B!WpuTF^W;81W%QR1Sv7zz`}tFhW1A>Mj=x8 z8`#2cS5FF!`QFj)O71(}y#Ay6wYWz9bs$qY{JVrhBwhM9uQ}geIGXA4u=PyHnAjla z1XJ@CBWX3c`)!g=cZSYz0FXHODo|3*NO+}R*77DpI1^m<4bZzs^HS4n#m*qcS6Nhv zE~5PmRb*Hk5^+x@S+Yr;O>FA-t9Qe6meH#&K;_hvIE%!*uk93LiMAZfzgiMVf64%J zBsos%qlFgHiP>p39|OJz$sRwkzQ>q&<8pvH$q;=xMv!niuwjbk_TlZFzLQgS$GN$- zWAt)#(%>Tr{2apJ3hweLJ#vZ!7+tAGs7e9ixS^mbvdhNJO^Fv+#9V@%FewR{nK2XC zFnYl52IcQBf&~I&aPrf^`=EisyK`!cK0H0cxj%R@LH_Z9cM)^PiiAFM%v-M^X-v1V z9-9vZQNE+$T72*8?l^LTREDt3)=O}P^EoD%OC!5ebUHascH2NskjHpkd z8y>E1hhj*N!o(f1umZ;1aGr&F`Aa~CnE%C9_ZQN7IND`zZPdO@%QUIfRj*J|85A>) zMFN!K!`bUt)$QeP1?z1~;tMZRC_!e=O{-iPoR%45DN5?>=;5NN-e$Bq0w+4N&T#Fu z_V&e8mR>wt4E9O!Jqn5CpK-T#$@fFE0vt&_hmtsb6tK{cxbX|=EX}i(^}4K&Efu{q zn-yXChzG~|3A*k0A<2r#R9~Q9r&W`aWris~nf(nSKt-yVsg)xtG__iG5+ajC5r3u5a*+TS}S z{@zfEHrmwG)3hhMFP81hm~uihcmp-_BuleYuI=nutkb?IW7&sphqZf23}mBEoZF`# zP~i6O-$C!p zNj3#BME^`#DTs^8_!%5ttjST_=|TIG3z-_&?0!a>W`1$Qlqla~^=Np$`^I#XZx~NU z(ftSSc+5wvaD?`K$uMap9fb@YeO3TpvxKn*=BS+ZSdRwy+1`;kzY6tw-xd1*T$G9m zpnum-Z!h${H6yq?omkyVdr2KR!kDou)pNkyoT?~GPEqpte%TvczVW;@`=H= zQLja0*7xuWVe87Yc@`0vdb*QFv!Rw{5&lmm^h-evpdBVI*NSHT8rZw5#3@+jb&$<> zkHYIv_WsXSVf~?*Rqq2EQkMDdtY2GPyjJ>w>(hI=h37h`l=4G(aIIJodpZfs)xI-1ZPCtlXlCaBK2~lo+FWHG7xv_x??h&9DZ&SC^Vg}LTR~O`qcl!Do-VL__kfQakWotV7)K**;%AV)u!BD^1R!WajBxOyTny&0aGnqtVFT$A%)=LS8R@ zk6s-0aIjQ8{k5E&3hk5jWzr(}B@xepK@_Fi)Sag}}L*-t89evHBn(EKVAbA`-8H2VHsxcAGcfmpqJ4HGu6 zj4t$=jWO7iybDFARb_>x!+G60cxx|+T(8>v-W|f@Mr^(iHvi;sOcE{EH}Xp#gv%;F zEh#V%aBJZAn`#PqS@BG)m3Q^#qRPVlX9K}y>&0u>rVH+&4XC$QUoQ-Mq3c*XuiND| zORHV{BWU~&`otd%bU=k-x-|e~KpmWuSb5I8DX|F!Kvgmd)&0S7;Ra{vGU literal 0 HcmV?d00001 diff --git a/BTPanel/static/img/dep_ico/lyapi.png b/BTPanel/static/img/dep_ico/lyapi.png new file mode 100644 index 0000000000000000000000000000000000000000..b7f13dca6f065e812ae6667744f0d6640fe147fd GIT binary patch literal 217614 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 ^v&UpIRqQ=nO9*3P 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

&KzQHJ!^TigoEXT#!dD-9OJ>^ zIXZIhBZ#9rgvHJH{L3!XtM9v0M-H@rYCO92#lVHXE9~Aa41bQedJ24ew@#(mo#8`} zo`o=<$t6GI-_u{KJw1PZ=wr?=XdOOdZ1Raz;aRQC~i% z!ov2yjo1DDm+1A^;n3}$!JD^Sf%6W$0o*m!+E@OV4_m?)cV?bDY!wfTF<JM5(rBLupFV35J|N<2nrUdgkV*Q9FlBS<6H&QNYRnXE!|58^D*mz zqG|%`N0+gph(oR8oZ7HD_hOBX&7tj%VpR>-wk*e%hbG$kC~#i_))p=mF1`~802e(* z{Ou|5-rd?TEedB5*)ut6KEwU>gbw$$$~`^3bMAS*3h)_^t0igU&o-Q5^GQ4V>=yEr z4$KOxW{SDlsv4!HHb9oZ*>5W{qJ$XgyaJMFGS6Wim4#~xW1h)3EGjS2 zt&h|VR${J9wP`9%POQgciw%x1Z9`)x@Q5x7=`k&TDf8(3NXK5f9`$`|_{O7~@p}MX zxj4}m-}Co{cfXtXt=9mzU$0Z$G@m?T>NyXmcv`pIUynUKJ-s-84Y=p0TfYq*q^Ku) zJ%S+i?A?RSB4nG=Y_g$>dRe+Xbxa0Z;1ngcdp z%2GzB(4g8%s8xrGZ9~DC+G?|4G&L^HH7QW5ijKKVyl9XH6RJyzW{eaelqxtV3Ll`& zq9QODr06(+I8{cdWy`??5naKkokTU1%9=;pP@`$1{hP1U*vHVyipE$6+9kxXAtslO zamh>D_|{MUu?}OI-Lb?E?m9RV-~yn;Nnt*t;658gJzE#BUX*)!dU|pGS{G}QIyGOA zPpI`wXl5lwuM0H ztQr7wQ(`G9LrJ6qYo!WSZZ>rc=aV{>NFmA<@XE40s%$AGYRG|#LB$}H8chjVUC^n; zG&TieO5}*C5sL;j5kRcL8;|)kMl=IVn;|CM0Fy#2>~i45{Ug+yH}h~QsH&PvRiRHS zj+!n!vJL80bCH}QtRgEP!l%r z?TF>i;qZ|W>+W*=gR8#@`#*jWF8;iQkurDN-dvE^0w;LdmK)MwAX8vjg>;CFxH z)41lZIUYN>s;)GgKX{p8bF0zHGP~gdy3tnV^M&JU>zFPqV0l$&TSHeGnko%aVYo0% zk_()+)S#?k7zEkKXsWXT$q*UpS|`*-$pf`WV49$9DAWTm4`DWrXbfr6svSyJJd6R4 zAv+VPo?nhoKXt%8C-W|*6Ht*1PeDrRd|Ds)b7}w)>nhyfw5wUBV z@GG|ixJ_qp%}*R>6K7OqL9<-EUXXiwdj16b{{sN+`+%Tz$N%>L0000E literal 0 HcmV?d00001 diff --git a/BTPanel/static/img/dep_ico/newlogoedu.png b/BTPanel/static/img/dep_ico/newlogoedu.png new file mode 100644 index 0000000000000000000000000000000000000000..ef260f97d01d9d28ac437a43018f9678bd1bebaa GIT binary patch literal 19899 zcmeI3c{tQt{P@Q%*+N<38e0)#W*E!N9cxA?g_JdnnZa0QCNuWRUWiC2C0$V}ORgm? zB)O3&30D+C_N-Y#_!^$p5OQT&-a z>ub#1T~QWdU&)K){NfYo4dO(+Zrg(Dy^I0}YD!QkL8m#i)i z@C)sWcSBhj8GmUGkaT1{Xfz563JnMdPz_L5CHuNV;YcJB3R8ossX>4m5NZ&Kh7E*} zsB)j3eDz~QpyGUq6dI9C0nyk(e3->{4|7h&A&EB2qgZC*}CSl z*{4wWJVR(8{!lx830NB0*P2ZB*8Lo17GFmV-nnxT1d`Z4?algOkrS>3o<2v5&{nu>Zx&Pj%`2knu#f zp#S9Md(EGHn46<5=>lU{B@*!{H5gtC>8hy(LE^Mv5Ihb+fM{!|t3$Lj z)it!ScpO0!ruJ!&Kb!x(2`xPsRc6zl9YFiBng@5#ZVoS3FV^0*4cj z5LYA?2SK_LH1XOnEe&mi_Sc4faQ2Ue_W2TlyoB}sq0ahP@IYf&bu3)N6;A-t3Cs7!6qyo_t^h1;ZvGytR>?a)lx%8{ToA@b% zP_VvK!urD0k^QA=y@f0WVJw_Q(S-hQ9zBQ;^b1%3v5H5I!agkgVp-M0QHH_e&7sC(ACt?P}e|1>5J(tEQo;wZ(AcGuzgY2 z)36pWu1_}fieDPq{hQ$riZ6zr1LKF&=BJSSTne0JfnzlE+d29l(fTd<|4;t-KBE6g zuXMhcjnDyMEHZI1=0m4t;-Uk>SY+a2%!f|P#6<^$vB<>5m=B$niHi;hW08rAF&{cD z6Biv2#v&6JV?K0RCN4T4j726c#(e0sOk8w87>i6?jQP-MnYieHFcz7(81tdiGI7xX zVJtFnG3G<3W#Xa(!dPVDV$6q5%fv+ogt5rP#h4GBmWhiF2xF0ni!mQMEfW_V5XK@C z7h^tjS|%g_fG`%BxES-H(=u_<0bwjMaWUpY zr)A=z1HxEj;$qB)PRqna2ZXW6#Ko8ootBA<4hUnBAugWpZ>ADR!0V_1zpQp-o6|Ugc&~{cRe@rJTTOY0mp8hj;Q`a z-n8zN)Y$N_cHoptNXYMXhu;rAU4GVC7LCF5tFhm4ckodZ5yDJAJ}uYQ)^^~)0aCd` zUfU?`ZvFnN`3~i(p|$bT62ng5X>`;3kJJ5iUY?#il$E)-xcE3Do5jv%rXN~rdqj0_ zGTFCVs;+kel?>+Q3h!J{i%8}jXx?2vySmY&u$IacMI zWuch*1YTE)t2N$p4)Lw*fg$tnvJ{_qYvx|L(u|O5sAe}1#8?Ufcf8$I#W<{3 z++`Z-;@;dA4@3m`$cNq&(2A*ur*0<`6QRMB?z@vms57NU?9#X=4caX~NDdc-_wyE( z)=0CkQP_E;wB=MvlGL^a?atB+Zwt3PwPxRW%g2FAEot^>9h>W=yd0b32N?14&d$vR zRXW+FwRx5~-L$!Gy+3y^L`5Y-FZ6yFDRgylC@(M1d|OKd$Hq&JYe&8IZu<+yDbc(b z&|1k-M<@#8wE(d_4g(pvZs2%eVUiwIK?YNGtu|JRPnrdKczVtRqWMqMjQcMjCC}cw zTlt&7PT`yFqCC-@oScD~q8PY_Mp=G-epOY~jT=vf-aoyhH<|8!EG;e5cvqK4M|5J3 z@z4grFwPXo)_NDdH+zycM1kbR4Y_5s&^ChcU>-4u?UdXe2eyj?PDT|Ig$+X4mCrkm zEn4lWNpHE;aIw-qL|bwT20nPAqr*;bwZ6%0@F^xow5)2^O5Rk+1Nd{hKh$s!5qKRQ zbF~+PED!XB_ndh%hG{ZIOhy!Jxv$JU^SoAW?Xbv-*feqh5fk9#T|l0=ftp#UeLuJN z>`APcrAYgcq1e!%zE{DOnHj;HbD{e3tOsLr($5w1A3m5Pveq);C`x#xod8 zFdRU6m1QM|ley|+6g(1hTzu5<)v=E_b#$Z!?A%=;=Vj=%r~T>uruTKHSazt%&;K3E zx=-x|as(UoYsYe$66?#Kd7I7f;%$*7WBRW}XSH9KFPIADZ7S5j2W zszjX-G4=Q35uJZAzI^SJr%}*z5NI=)Md$%Y1k4u9_u^#IoZ{7wijuvtW(D4>I-bW^ zb>naEX~%*7BcS8kriL;=Auo1_$Iu80-86@vB5<_OVe+Z=V- zmn{Pw-b@;gy#hxmh*S(cU=iMSIzRQf8*f0!z?048uXMDvhZmMHmW}oG=?LNrcVjru zlJ&WnHy+XNcGYp2WbpXUn)D@^qwb_47x+I2@-BJQ?#y{By2p{TRoJy~m-G0}#J^pSFG<9(r*rYiZ!x%}uHxYr5HQ(ORaI6t*Z1gTWMrgd9mM(mM@A%1}S2X zJp3w(E|9uS1GTuLDh6g=yT6QzeY+o6>O0fqZ#IR_l|PJ$^}-(FOABN52xFxQ8xUD| z`B4Gm!3$jhJy#T;xWE)ecru6H&&;?zJ+JZlRde<(DgHXh;LehmCQcS^LCF{tG~tDr ztB6i+?=1sPYsvHqq0XEOzY%?WMn*?T-rlXAWo{*ly(gsq9-9L_I1e8&Ww(b}@Jal^ z!m%~vNHy}8ttr8y1`4x7`U;oNGp z@H0;sh{Z?%WRP-GThhnJ=kVdfHJ(Pm-PP4qUg&y$KKjUqsdRPsjdy-$~r^8p*8QIcOji$h>e~96|zl%Apu{VkA)sRx^hbD_rC4&I`6Y5Yl*o@AH;`sVwN?-w-v6QazKi}Eec}|!W9A%VknOOIJqzsIS1cCc+Oz(16=;o>x;BiTHc{#Rr_+A$P3D{tA zTk4A?6O3*0ZJWEgD&3nhfl-&0ma?<01}SXZJ=EkP&ab8~5;Hp{CRL*Vi+8=f!+`rV z;Z9-UsiDPv=q*VEyDW>prbsW-jhuS5*~DFt&FIvt=bB|ON7?qcBng^aUA|VtwbVLR z37l}$c;y<3RT?-Wv$C?P$Ni;IG!qfb#l73P4WHJJUPhywrouT<&X^}VR5J%k51X2r z!a0rvCR*)Cm0U38H{;$AZD?QMUz<>zsWRi*V|O)(i~X^EiT299S-mDla)LZ%gGj*@ z0vN%4W#YJZLw_u>!$v3NDlpf9neCos2=j*GM%W%j5&p#!;0=N-?g}X*#c$*~8&gUf z#nfwHHN09%W`O_hioRIk?cLYB?$&pdzj+_VnLL@RJ{W#5zVLodUy6}CC)<;@$Z)rq zk5kTWCF_IN)s&GJzO|3T znR@R~duR&w);YEPF!%WvGj#}wr`xy19e*Bhob-wVlo7kf&Y0TSe6}%15$+b&62bb6 zyz8aT$HX=iTvyjghwHiYkL)RIESHwdb4)=`|4TtR&@wEl@r^olLO@$07 zxAQa)KX{;zkdP{@yX~lIDRPo$<0acQ>x0IfetDfxN7V7`3!CD@4771h;E+Z4T=Ch# zrx(bn+k|8rJdhDZ(yOZSO;K>=w8b0N8D<5m!`UrtY>_)sN3WV$KA3bUS*=TaO4tm6 zR!`my9*&W6zO1&i@4^f9A(d5P@VvEY{L7HLvr+SVI8B;#ktK+UTPAx6sP3g0GFPH!&qr{un+3Du87h;+XzwK_sczc zw$t;sYOlK4r6ErVW8gxukBcit?`_punff#8q#mZ_l?@f`3wa|1X1&&U?iRmY&*;Lo zi$3F2M-pl5HX`VWwO9Ab!IP@0-87$RZ37R)insfS^0JS)2L~_N zCWhS-zGll8pd}C1k>2f89felx2Ysl_6!znjmPGnq&(6*zgH_=z$u8$KG<$Ww*;m2X}kz5&jXD7K>Y*{a}XGh9E>^I~V1aY|3M-Ldh)l;(L zF|y2mUDZDJzU%O23muk{P*61IP>*2~$L-}e?;`tI`_33B8q| z%YE#FkA;(iVSC7-CyqI2_JTsq#R<2`Quqy4B1mPIWiEZWcg6^IU2bDO`{;ZOY*0T7^LqPs?&Fsq_ENCe zUhOu|1JjS~<;8r@<)3iTOH>}B3`kzi%G>UDNJwSTY*fD{&!%dr zD7JB-2EFlySLbET%~zEyJT~#^#~a3nS%Jc2-nR^luC6M}<#Q$&p2zo5jS8YOwWG2~ zfp=wQZ1nWp!(`Zw?|JO1@>@h(@BOl((D(^YkHYcYLP;ee8??+Q5*tB9 zb;}*87&+xTiL?BcAr20(H`3-or{y|M!u_N?_$~E0^9PC=r5u!2`xEt?Zc}6$iu+@& zZEat6b!i|Fh`2jNsN||mXWAoRCg(VJ!)?37ZmjPO<6~pWii%<*b&|c*`uck4{STL| z>Ia5~5?zfw)p;%%>=nNqc&_g9t)-RK!9lmYHdMat>-+U`q|KW*4-5=cR#whbdRDto z7ACrsZ3?|TJtY<$vTrBa96UJxST6D7$iC2-;L6+EpN`Oe(>)S6@%j#M$%T4}nAjK0 zPuEEcoT%BA_#5zu8E|2{AoshMf8r<LbZq zZySAdQZ&HNZ@jy5Sru}lySw|W^RW)MlGL;`&$7!nmI4qg~~cG00Ca5_6t7nP=3yTwWFv7HUfzux2Mg>qjxNo(YbKptd&dyFjLBTlt@T0iRyfyJVPTtEksTt+MSOTZY_raC?C*&j&jI*05+LFAS zeyFZU0o`jBid$426}ee4mi>L+xRm|I%}O;e-fXMu4||L33kHL92d#@$@~n4Uv8o3S wHpNj%7tGY09hHyXPk4B?@aTrqt7MQxgiHHWIXMCNrwU|>*=tm2=o0b&0Gzyc>i_@% literal 0 HcmV?d00001 diff --git a/BTPanel/static/img/dep_ico/qibosoft.png b/BTPanel/static/img/dep_ico/qibosoft.png new file mode 100644 index 0000000000000000000000000000000000000000..ad85b8696b01b64dc1014b3db38955d604c42ef1 GIT binary patch literal 3798 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 Ry#7)E^mUB2t2N;-{s)M%0r&s_ literal 0 HcmV?d00001 diff --git a/BTPanel/static/img/dep_ico/skm.png b/BTPanel/static/img/dep_ico/skm.png deleted file mode 100644 index 74a38b79..00000000 --- a/BTPanel/static/img/dep_ico/skm.png +++ /dev/null @@ -1,563 +0,0 @@ - - - - - - - - - - 宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板 - - - - - - - - - - -

- - - - - - -
-
宝塔邀请大使赠送您
-
3188元礼包
-
立即领取
-
-
-
- -
-
-
- -
-
-

免费加入宝塔邀请大使,帮助他人同时还能赚钱

立即免费加入
-
-
- 尊云,价格厚道的云服务器,6核10G,99元 -
- -
-
-
-

远程桌面连接工具

-

下载

-
-
-
-
-

Linux面板命令大全

-

查看

-
-
-
-
-

IDC推荐

-

查看

-
-
-
-
-
-
-
-

宝塔币商城

-

查看

-
-
-
-
-

宝塔跑分排行榜

-

查看

-
-
-
-
- -
- 宝塔运维 - 付费运维已停止接单,论坛可免费求助 -
- 点击查看 -
-
- -
- 开发者中心 - 诚邀开发者入驻,让创作更有价值 -
- 点击查看 -
-
-
-
-
- -
-
-

合作伙伴

-

申请IDC定制版合作

-
-
- 尊云 - 唯一网络 - DNS - - 亚洲诚信 - 阿里云 - 京东云 - 又拍云 - 网堤安全 -
-
- - - -
- - -
- - -
- - -
- - - - - - - - - \ No newline at end of file diff --git a/BTPanel/static/img/dep_ico/test.png b/BTPanel/static/img/dep_ico/test.png deleted file mode 100644 index 37a9c0a9..00000000 --- a/BTPanel/static/img/dep_ico/test.png +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - - - - - 宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板 - - - - - - - - - - -
- - - - - - -
-
宝塔邀请大使赠送您
-
3188元礼包
-
立即领取
-
-
-
- -
-
-
- -
-
-

免费加入宝塔邀请大使,帮助他人同时还能赚钱

立即免费加入
-
-
- 尊云,价格厚道的云服务器,6核10G,99元 -
- -
-
-
-

远程桌面连接工具

-

下载

-
-
-
-
-

Linux面板命令大全

-

查看

-
-
-
-
-

IDC推荐

-

查看

-
-
-
-
-
-
-
-

宝塔币商城

-

查看

-
-
-
-
-

宝塔跑分排行榜

-

查看

-
-
-
-
- -
- 宝塔运维 - 付费运维已停止接单,论坛可免费求助 -
- 点击查看 -
-
- -
- 开发者中心 - 诚邀开发者入驻,让创作更有价值 -
- 点击查看 -
-
-
-
-
- -
-
-

合作伙伴

-

申请IDC定制版合作

-
-
- 尊云 - 唯一网络 - DNS - - 亚洲诚信 - 阿里云 - 京东云 - 又拍云 - 网堤安全 -
-
- - - -
- - -
- - -
- - -
- - - - - - - - - \ No newline at end of file diff --git a/BTPanel/static/img/dep_ico/test2.png b/BTPanel/static/img/dep_ico/test2.png deleted file mode 100644 index 37a9c0a9..00000000 --- a/BTPanel/static/img/dep_ico/test2.png +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - - - - - 宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板 - - - - - - - - - - -
- - - - - - -
-
宝塔邀请大使赠送您
-
3188元礼包
-
立即领取
-
-
-
- -
-
-
- -
-
-

免费加入宝塔邀请大使,帮助他人同时还能赚钱

立即免费加入
-
-
- 尊云,价格厚道的云服务器,6核10G,99元 -
- -
-
-
-

远程桌面连接工具

-

下载

-
-
-
-
-

Linux面板命令大全

-

查看

-
-
-
-
-

IDC推荐

-

查看

-
-
-
-
-
-
-
-

宝塔币商城

-

查看

-
-
-
-
-

宝塔跑分排行榜

-

查看

-
-
-
-
- -
- 宝塔运维 - 付费运维已停止接单,论坛可免费求助 -
- 点击查看 -
-
- -
- 开发者中心 - 诚邀开发者入驻,让创作更有价值 -
- 点击查看 -
-
-
-
-
- -
-
-

合作伙伴

-

申请IDC定制版合作

-
-
- 尊云 - 唯一网络 - DNS - - 亚洲诚信 - 阿里云 - 京东云 - 又拍云 - 网堤安全 -
-
- - - -
- - -
- - -
- - -
- - - - - - - - - \ No newline at end of file diff --git a/BTPanel/static/img/dep_ico/ttttt.png b/BTPanel/static/img/dep_ico/ttttt.png deleted file mode 100644 index 141ead24..00000000 --- a/BTPanel/static/img/dep_ico/ttttt.png +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - - - - - 宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板 - - - - - - - - - - -
- - - - - - -
-
宝塔邀请大使赠送您
-
3188元礼包
-
立即领取
-
-
-
- -
-
-
- -
-
-

免费加入宝塔邀请大使,帮助他人同时还能赚钱

立即免费加入
-
-
- 尊云,价格厚道的云服务器,6核10G,99元 -
- -
-
-
-

远程桌面连接工具

-

下载

-
-
-
-
-

Linux面板命令大全

-

查看

-
-
-
-
-

IDC推荐

-

查看

-
-
-
-
-
-
-
-

宝塔币商城

-

查看

-
-
-
-
-

宝塔跑分排行榜

-

查看

-
-
-
-
- -
- 宝塔运维 - 付费运维已停止接单,论坛可免费求助 -
- 点击查看 -
-
- -
- 开发者中心 - 诚邀开发者入驻,让创作更有价值 -
- 点击查看 -
-
-
-
-
- -
-
-

合作伙伴

-

申请IDC定制版合作

-
-
- 尊云 - 唯一网络 - DNS - - 亚洲诚信 - 阿里云 - 京东云 - 又拍云 - 网堤安全 -
-
- - - -
- - -
- - -
- - -
- - - - - - - - - \ No newline at end of file diff --git a/BTPanel/static/img/dep_ico/wp.png b/BTPanel/static/img/dep_ico/wp.png deleted file mode 100644 index 8daf9e16..00000000 --- a/BTPanel/static/img/dep_ico/wp.png +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - - - - - 宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板 - - - - - - - - - - -
- - - - - - -
-
宝塔邀请大使赠送您
-
3188元礼包
-
立即领取
-
-
-
-

免费加入宝塔邀请大使,帮助他人同时还能赚钱

立即免费加入
- -
-
-
- -
-
-
-
- 尊云,价格厚道的云服务器,6核10G,99元 -
- -
-
-
-

远程桌面连接工具

-

下载

-
-
-
-
-

Linux面板命令大全

-

查看

-
-
-
-
-

IDC推荐

-

查看

-
-
-
-
-
-
-
-

宝塔币商城

-

查看

-
-
-
-
-

宝塔跑分排行榜

-

查看

-
-
-
-
- -
- 宝塔运维 - 付费运维已停止接单,论坛可免费求助 -
- 点击查看 -
-
- -
- 开发者中心 - 诚邀开发者入驻,让创作更有价值 -
- 点击查看 -
-
-
-
-
- -
-
-

合作伙伴

-

申请IDC定制版合作

-
-
- 尊云 - 唯一网络 - DNS - - 亚洲诚信 - 阿里云 - 京东云 - 又拍云 - 网堤安全 -
-
- - - -
- - -
- - -
- - -
- - - - - - - - - \ No newline at end of file diff --git a/BTPanel/static/img/dep_ico/xunruicms.png b/BTPanel/static/img/dep_ico/xunruicms.png new file mode 100644 index 0000000000000000000000000000000000000000..5bf2e2ddf4b3ecb227894caa63103bc97b980f3a GIT binary patch literal 44079 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ÛQg;oN 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 m#uRGvtTjg>9 literal 0 HcmV?d00001 diff --git a/BTPanel/static/img/dep_ico/z-blog.png b/BTPanel/static/img/dep_ico/z-blog.png deleted file mode 100644 index 82f877e9..00000000 --- a/BTPanel/static/img/dep_ico/z-blog.png +++ /dev/null @@ -1,561 +0,0 @@ - - - - - - - - - - 宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板 - - - - - - - - - - -
- - - - - - -
-
宝塔邀请大使赠送您
-
3188元礼包
-
立即领取
-
-
-
-

免费加入宝塔邀请大使,帮助他人同时还能赚钱

立即免费加入
- -
-
-
- -
-
-
-
- 尊云,价格厚道的云服务器,6核10G,99元 -
- -
-
-
-

远程桌面连接工具

-

下载

-
-
-
-
-

Linux面板命令大全

-

查看

-
-
-
-
-

IDC推荐

-

查看

-
-
-
-
-
-
-
-

宝塔币商城

-

查看

-
-
-
-
-

宝塔跑分排行榜

-

查看

-
-
-
-
- -
- 宝塔运维 - 付费运维已停止接单,论坛可免费求助 -
- 点击查看 -
-
- -
- 开发者中心 - 诚邀开发者入驻,让创作更有价值 -
- 点击查看 -
-
-
-
-
- -
-
-

合作伙伴

-

申请IDC定制版合作

-
-
- 尊云 - 唯一网络 - DNS - - 亚洲诚信 - 阿里云 - 京东云 - 又拍云 - 网堤安全 -
-
- - - -
- - -
- - -
- - -
- - - - - - - - - \ No newline at end of file diff --git a/BTPanel/static/img/icon_qcode_android.png b/BTPanel/static/img/icon_qcode_android.png new file mode 100644 index 0000000000000000000000000000000000000000..668d07c357b03ca40ca6af1ef82fbe7a287b4947 GIT binary patch literal 6085 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 Ao&W#< diff --git a/BTPanel/static/img/soft_ico/ico-disk.png b/BTPanel/static/img/soft_ico/ico-disk.png deleted file mode 100644 index 7c655ed99f6ef4b67c0c357a48ca56f05baa5553..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DinK$vl=HlH+5@SLZMV@QPi+v(9KAya=+(xg8edl^T0J`Y6vCCHKZTn`3L1&!`k}klwzaea7A| z6>rj$zCCK1caG`2&IP4S*B1Uh%<7P`Ht2opS*G;wjcHqtq-L!+u)RlU`pW;I3*0tG zJu>?Gy#In{%rd*(4kn9%vO5@5^qP;PzS1f9Db1kQ4iwq!z`ea6s9`$S4qKr9Rk{~0 zM<$3#)Eh|FnH>Ia^`)RHru@RPzopr0G&R5 Ao&W#< diff --git a/BTPanel/static/img/soft_ico/ico-doxcx.png b/BTPanel/static/img/soft_ico/ico-doxcx.png new file mode 100644 index 00000000..6985bc7d --- /dev/null +++ b/BTPanel/static/img/soft_ico/ico-doxcx.png @@ -0,0 +1 @@ +{"status":false,"msg":"\u6307\u5b9a\u6587\u4ef6\u4e0d\u5b58\u5728!"} \ No newline at end of file diff --git a/BTPanel/static/img/soft_ico/ico-ecshop.png b/BTPanel/static/img/soft_ico/ico-ecshop.png new file mode 100644 index 00000000..6985bc7d --- /dev/null +++ b/BTPanel/static/img/soft_ico/ico-ecshop.png @@ -0,0 +1 @@ +{"status":false,"msg":"\u6307\u5b9a\u6587\u4ef6\u4e0d\u5b58\u5728!"} \ No newline at end of file diff --git a/BTPanel/static/img/soft_ico/ico-emlog.png b/BTPanel/static/img/soft_ico/ico-emlog.png new file mode 100644 index 00000000..6985bc7d --- /dev/null +++ b/BTPanel/static/img/soft_ico/ico-emlog.png @@ -0,0 +1 @@ +{"status":false,"msg":"\u6307\u5b9a\u6587\u4ef6\u4e0d\u5b58\u5728!"} \ No newline at end of file diff --git a/BTPanel/static/img/soft_ico/ico-empirecms.png b/BTPanel/static/img/soft_ico/ico-empirecms.png new file mode 100644 index 00000000..6985bc7d --- /dev/null +++ b/BTPanel/static/img/soft_ico/ico-empirecms.png @@ -0,0 +1 @@ +{"status":false,"msg":"\u6307\u5b9a\u6587\u4ef6\u4e0d\u5b58\u5728!"} \ No newline at end of file diff --git a/BTPanel/static/img/soft_ico/ico-frps_dev.png b/BTPanel/static/img/soft_ico/ico-frps_dev.png new file mode 100644 index 0000000000000000000000000000000000000000..1fbdcd96956907b1979a5f1dbf5876fd3b9e90ec GIT binary patch literal 10319 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 Ao&W#< diff --git a/BTPanel/static/img/soft_ico/ico-php_demo.png b/BTPanel/static/img/soft_ico/ico-php_demo.png deleted file mode 100644 index 7c655ed99f6ef4b67c0c357a48ca56f05baa5553..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DinK$vl=HlH+5@SLZMV@QPi+v(9KAya=+(xg8edl^T0J`Y6vCCHKZTn`3L1&!`k}klwzaea7A| z6>rj$zCCK1caG`2&IP4S*B1Uh%<7P`Ht2opS*G;wjcHqtq-L!+u)RlU`pW;I3*0tG zJu>?Gy#In{%rd*(4kn9%vO5@5^qP;PzS1f9Db1kQ4iwq!z`ea6s9`$S4qKr9Rk{~0 zM<$3#)Eh|FnH>Ia^`)RHru@RPzopr0G&R5 Ao&W#< diff --git a/BTPanel/static/img/soft_ico/ico-phpcms.png b/BTPanel/static/img/soft_ico/ico-phpcms.png new file mode 100644 index 00000000..6985bc7d --- /dev/null +++ b/BTPanel/static/img/soft_ico/ico-phpcms.png @@ -0,0 +1 @@ +{"status":false,"msg":"\u6307\u5b9a\u6587\u4ef6\u4e0d\u5b58\u5728!"} \ No newline at end of file diff --git a/BTPanel/static/img/soft_ico/ico-portblast.png b/BTPanel/static/img/soft_ico/ico-portblast.png new file mode 100644 index 0000000000000000000000000000000000000000..41084e188f73482838f770cc15e58fd8f9a143b8 GIT binary patch literal 165662 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 YDX`jf->6HEE1AS4W-6a9vGlwD2T|Dcr~m)} literal 0 HcmV?d00001 diff --git a/BTPanel/static/img/soft_ico/ico-qrpay.png b/BTPanel/static/img/soft_ico/ico-qrpay.png new file mode 100644 index 00000000..6985bc7d --- /dev/null +++ b/BTPanel/static/img/soft_ico/ico-qrpay.png @@ -0,0 +1 @@ +{"status":false,"msg":"\u6307\u5b9a\u6587\u4ef6\u4e0d\u5b58\u5728!"} \ No newline at end of file diff --git a/BTPanel/static/img/soft_ico/ico-redisutil.png b/BTPanel/static/img/soft_ico/ico-redisutil.png deleted file mode 100644 index 7c655ed99f6ef4b67c0c357a48ca56f05baa5553..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DinK$vl=HlH+5@SLZMV@QPi+v(9KAya=+(xg8edl^T0J`Y6vCCHKZTn`3L1&!`k}klwzaea7A| z6>rj$zCCK1caG`2&IP4S*B1Uh%<7P`Ht2opS*G;wjcHqtq-L!+u)RlU`pW;I3*0tG zJu>?Gy#In{%rd*(4kn9%vO5@5^qP;PzS1f9Db1kQ4iwq!z`ea6s9`$S4qKr9Rk{~0 zM<$3#)Eh|FnH>Ia^`)RHru@RPzopr0G&R5 Ao&W#< diff --git a/BTPanel/static/img/soft_ico/ico-sentcms.png b/BTPanel/static/img/soft_ico/ico-sentcms.png new file mode 100644 index 00000000..6985bc7d --- /dev/null +++ b/BTPanel/static/img/soft_ico/ico-sentcms.png @@ -0,0 +1 @@ +{"status":false,"msg":"\u6307\u5b9a\u6587\u4ef6\u4e0d\u5b58\u5728!"} \ No newline at end of file diff --git a/BTPanel/static/img/soft_ico/ico-tipask.png b/BTPanel/static/img/soft_ico/ico-tipask.png new file mode 100644 index 00000000..6985bc7d --- /dev/null +++ b/BTPanel/static/img/soft_ico/ico-tipask.png @@ -0,0 +1 @@ +{"status":false,"msg":"\u6307\u5b9a\u6587\u4ef6\u4e0d\u5b58\u5728!"} \ No newline at end of file diff --git a/BTPanel/static/img/soft_ico/ico-wdja.png b/BTPanel/static/img/soft_ico/ico-wdja.png new file mode 100644 index 00000000..6985bc7d --- /dev/null +++ b/BTPanel/static/img/soft_ico/ico-wdja.png @@ -0,0 +1 @@ +{"status":false,"msg":"\u6307\u5b9a\u6587\u4ef6\u4e0d\u5b58\u5728!"} \ No newline at end of file diff --git a/BTPanel/static/img/soft_ico/ico-webTray.png b/BTPanel/static/img/soft_ico/ico-webTray.png new file mode 100644 index 0000000000000000000000000000000000000000..f65086df4319117617457a41981ccd01c1863a99 GIT binary patch literal 4421 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 Jd6Ow3=|4|d3Q_<7 literal 0 HcmV?d00001 diff --git a/BTPanel/static/img/soft_ico/ico-wee7.png b/BTPanel/static/img/soft_ico/ico-wee7.png new file mode 100644 index 00000000..6985bc7d --- /dev/null +++ b/BTPanel/static/img/soft_ico/ico-wee7.png @@ -0,0 +1 @@ +{"status":false,"msg":"\u6307\u5b9a\u6587\u4ef6\u4e0d\u5b58\u5728!"} \ No newline at end of file diff --git a/BTPanel/static/img/soft_ico/ico-wordpress.png b/BTPanel/static/img/soft_ico/ico-wordpress.png new file mode 100644 index 00000000..6985bc7d --- /dev/null +++ b/BTPanel/static/img/soft_ico/ico-wordpress.png @@ -0,0 +1 @@ +{"status":false,"msg":"\u6307\u5b9a\u6587\u4ef6\u4e0d\u5b58\u5728!"} \ No newline at end of file diff --git a/BTPanel/static/img/soft_ico/ico-y6w_createwebs.png b/BTPanel/static/img/soft_ico/ico-y6w_createwebs.png new file mode 100644 index 0000000000000000000000000000000000000000..7a0820f5590e7937cbc0719e30db7bbb3841fcc0 GIT binary patch literal 4106 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 IM6N<$f|3BRF8}}l literal 0 HcmV?d00001 diff --git a/BTPanel/static/img/soft_ico/ico-y6w_speedtest.png b/BTPanel/static/img/soft_ico/ico-y6w_speedtest.png index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..20fd9f1ed4de50f2116358cea0e615e82c443463 100644 GIT binary patch literal 3686 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 Ef-H>&W&i*H literal 0 HcmV?d00001 diff --git a/BTPanel/static/img/soft_ico/ico-yichaxin.png b/BTPanel/static/img/soft_ico/ico-yichaxin.png new file mode 100644 index 0000000000000000000000000000000000000000..e516dbb93d6d6a7153612921c64c952794875f3d GIT binary patch literal 5389 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 literal 0 HcmV?d00001 diff --git a/BTPanel/static/img/soft_ico/ico-zfaka-zlkb.png b/BTPanel/static/img/soft_ico/ico-zfaka-zlkb.png new file mode 100644 index 00000000..6985bc7d --- /dev/null +++ b/BTPanel/static/img/soft_ico/ico-zfaka-zlkb.png @@ -0,0 +1 @@ +{"status":false,"msg":"\u6307\u5b9a\u6587\u4ef6\u4e0d\u5b58\u5728!"} \ No newline at end of file diff --git a/BTPanel/static/js/config.js b/BTPanel/static/js/config.js index 517b3576..eec464e5 100644 --- a/BTPanel/static/js/config.js +++ b/BTPanel/static/js/config.js @@ -22,9 +22,184 @@ function SetPanelAutoUpload(){ } + + +$('#panel_verification').click(function(){ + var _checked = $(this).prop('checked'); + if(_checked){ + layer.open({ + type: 1, + area: ['500px','530px'], + title: 'Google身份认证绑定', + closeBtn: 2, + shift: 5, + shadeClose: false, + content: '', + success:function(layers,index){ + $('.submit_verify').click(function(e){ + var check_verification = $('#check_verification').prop('checked'); + if(!check_verification){ + layer.msg('请先勾选同意风险',{icon:0}); + return false; + } + var loadT = layer.msg('正在开启Google身份认证,请稍后...', { icon: 16, time: 0, shade: [0.3, '#000'] }); + set_two_step_auth({act:_checked},function(rdata){ + layer.close(loadT); + if (rdata.status) layer.closeAll(); + layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); + if(rdata.status && _checked){ + $('.open_two_verify_view').click(); + } + }); + }); + $('.close_verify').click(function(){ + layer.closeAll(); + $('#panel_verification').prop('checked',!_checked); + }); + },cancel:function () { + layer.closeAll(); + $('#panel_verification').prop('checked',!_checked); + } + }); + }else{ + bt.confirm({ + title: 'Google身份认证', + msg: '是否关闭Google身份认证,是否继续?', + cancel: function () { + $('#panel_verification').prop('checked',!_checked); + }}, function () { + var loadT = layer.msg('正在关闭Google身份认证,请稍后...', { icon: 16, time: 0, shade: [0.3, '#000'] }); + set_two_step_auth({act:_checked},function(rdata){ + layer.close(loadT); + if (rdata.status) layer.closeAll(); + layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); + if(rdata.status && _checked){ + $('.open_two_verify_view').click(); + } + }); + },function () { + $('#panel_verification').prop('checked',!_checked); + }); + } + + // console.log(_data); + +}); + +$('.open_two_verify_view').click(function(){ + var _checked = $('#panel_verification').prop('checked'); + if(!_checked){ + layer.msg('请先开启Google身份认证服务',{icon:0}); + return false; + } + layer.open({ + type: 1, + area: ['600px','670px'], + title: 'Google身份认证绑定', + closeBtn: 2, + shift: 5, + shadeClose: false, + content: '
\ +
基于Google Authenticator用户进行登录认证
\ +
\ +
1. 密钥绑定
\ +
\ +
\ +
账号:
\ +
密钥:
\ +
类型:基于时间
\ +
\ +
\ +
\ +
\ +
2. 扫码绑定 ( 使用Google 身份验证器APP扫码 )
\ +
\ +
\ +
\ +
\ +
\ +

提示:请使用“ Google 身份验证器APP ”绑定,各大软件商店均可下载该APP,支持安卓、IOS系统。使用教程

\ +

开启服务后,请立即使用“Google 身份验证器APP”绑定,以免出现无法登录的情况。

\ +
\ +
', + success:function(e){ + get_two_verify(function(res){ + $('.verify_box_line .username').html(res.username); + $('.verify_box_line .userkey').html(res.key); + }); + get_qrcode_data(function(res){ + jQuery('#verify_qrcode').qrcode({ + render: "canvas", + text: res, + height:150, + width:150 + }); + }); + } + }); +}); + +(function(){ + check_two_step(function(res){ + $('#panel_verification').prop('checked',res.status); + }); +})() + + +function check_two_step(callback){ + $.post('/config?action=check_two_step',function(res){ + if(callback) callback(res); + }); +} +function get_qrcode_data(callback){ + $.post('/config?action=get_qrcode_data',function(res){ + if(callback) callback(res); + }); +} +function get_two_verify(callback){ + $.post('/config?action=get_key',function(res){ + if(callback) callback(res); + }); +} +function set_two_step_auth(obj,callback){ + $.post('/config?action=set_two_step_auth',{act:obj.act?1:0},function(res){ + if(callback) callback(res); + }); +} + $(".set-submit").click(function(){ var data = $("#set-Config").serialize(); - console.log(data) layer.msg(lan.config.config_save,{icon:16,time:0,shade: [0.3, '#000']}); $.post('/config?action=setPanel',data,function(rdata){ layer.closeAll(); diff --git a/BTPanel/static/js/database.js b/BTPanel/static/js/database.js index 81ea42d1..5c9cb1c4 100644 --- a/BTPanel/static/js/database.js +++ b/BTPanel/static/js/database.js @@ -369,7 +369,7 @@ var database = { }, input_database: function (name) { var path = bt.get_cookie('backup_path') + "/database"; - bt.files.get_files(path, '', function (rdata) { + bt.send('get_files', 'files/GetDir', 'reverse=True&sort=mtime&tojs=GetFiles&p=1&showRow=100&path=' + path, function (rdata) { var data = []; for (var i = 0; i < rdata.FILES.length; i++) { if (rdata.FILES[i] == null) continue; @@ -411,7 +411,7 @@ var database = { }, { field: 'opt', title: '操作', align: 'right', templet: function (item) { - return '导入 ';; + return '导入 | 删除'; } }, ], @@ -419,5 +419,15 @@ var database = { }); }, 100) }) + }, + remove_input_file: function (fileName,name) { + layer.confirm(lan.get('recycle_bin_confirm', [fileName]), { title: lan.files.del_file, closeBtn: 2, icon: 3 }, function (index) { + layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] }); + $.post('/files?action=DeleteFile', 'path=' + encodeURIComponent(fileName), function (rdata) { + layer.close(index); + layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); + database.input_database(name); + }); + }); } } \ No newline at end of file diff --git a/BTPanel/static/js/public_backup.js b/BTPanel/static/js/public_backup.js index 192d6ad3..503e66a0 100644 --- a/BTPanel/static/js/public_backup.js +++ b/BTPanel/static/js/public_backup.js @@ -3806,10 +3806,17 @@ bt.soft = { if(type == undefined) type = 0; if(search == undefined) search = ''; var force = bt.get_cookie('force'); - if(force == undefined) force = 0; - var loading = bt.load(lan.public.the,1); - bt.send('get_soft_list','plugin/get_soft_list',{p:p,type:type,tojs:'soft.get_list',force:force,query:search},function(rdata){ - loading.close(); + if (force == undefined) force = 0; + p = p + '' + if (p.indexOf('not_load') == -1) { + var loading = bt.load(lan.public.the, 1); + } else { + var loading = null; + p = p.split("not_load")[0]; + } + + bt.send('get_soft_list', 'plugin/get_soft_list', { p: p, type: type, tojs: 'soft.get_list', force: force, query: search }, function (rdata) { + if (loading) loading.close(); bt.set_cookie('force',0); if(callback) callback(rdata); }) diff --git a/BTPanel/static/js/site.js b/BTPanel/static/js/site.js index c214c655..7bdf7d00 100644 --- a/BTPanel/static/js/site.js +++ b/BTPanel/static/js/site.js @@ -1586,6 +1586,12 @@ var site = { var area_size = '500px'; var err_info = ""; + if (!new_data.msg[1].challenges[1]) { + if (new_data.msg[1].challenges[0]) { + new_data.msg[1].challenges[1] = new_data.msg[1].challenges[0] + } + } + if (ldata.msg[1].status === 'invalid') { area_size = '600px'; var trs = $("#dns_txt_jx tbody tr"); @@ -1622,6 +1628,11 @@ var site = { site.reload(); bt.msg(ret); } else { + if (!ret.msg[1].challenges[1]) { + if (ret.msg[1].challenges[0]) { + ret.msg[1].challenges[1] = ret.msg[1].challenges[0] + } + } var area_size = '500px'; var err_info = ""; diff --git a/BTPanel/static/js/soft.js b/BTPanel/static/js/soft.js index 82e62062..f42c98c6 100644 --- a/BTPanel/static/js/soft.js +++ b/BTPanel/static/js/soft.js @@ -1,8 +1,9 @@ var soft = { + is_install: false, get_list: function (page, type, search) { - if (page == undefined) page = 0; - if (type == undefined) type = 0; - + if (page == undefined || page == 'null' || page == 'undefined') page = 0; + if (type == undefined || type == 'null' || type == 'undefined') type = 0; + if (search == undefined || search == 'null' || search == 'undefined') search = undefined; var _this = this; var istype = getCookie('softType'); if (istype == 'undefined' || istype == 'null' || !istype) { @@ -14,9 +15,8 @@ var soft = { soft.get_dep_list(1) return; } - + soft.is_install = false; bt.soft.get_soft_list(page, type, search, function (rdata) { - if (rdata.pro >= 0) { $("#updata_pro_info").html(''); } else if (rdata.pro === -2) { @@ -222,7 +222,7 @@ var soft = { } } else { - if (item.setup) { + if (item.setup && item.task == '1') { if (pay_opt == '') { if (item.versions.length > 1) { for (var i = 0; i < item.versions.length; i++) { @@ -252,9 +252,15 @@ var soft = { } else if (item.task == '-1') { option = '正在安装'; + soft.is_install = true; } else if (item.task == '0') { option = '等待安装'; + soft.is_install = true; + } + else if (item.task == '-2') { + option = '正在更新'; + soft.is_install = true; } else { if (pay_opt) { @@ -271,6 +277,14 @@ var soft = { ], data: data }) + bt.set_cookie('load_page', (page+'').split('not_load')[0]) + bt.set_cookie('load_type', type) + bt.set_cookie('load_search', search) + if (soft.is_install) { + setTimeout(function () { + soft.get_list(bt.get_cookie('load_page') + 'not_load', bt.get_cookie('load_type'), bt.get_cookie('load_search')); + }, 3000); + } }) }, get_dep_list: function (p) { diff --git a/BTPanel/templates/default/config.html b/BTPanel/templates/default/config.html index 4444611f..5f0834e2 100644 --- a/BTPanel/templates/default/config.html +++ b/BTPanel/templates/default/config.html @@ -52,6 +52,13 @@
+
+ Google身份认证 +
+ + +
+
@@ -186,32 +193,93 @@

{{data['lan']['C1']}}

height: 100%; } - .personalDetails .userList .addweChat { - height: 50px; - text-align: center; - padding-top: 20px; - color: #20a53a; - font-size: 16px; - } - - .personalDetails .userList .addweChat:hover { - } + .personalDetails .userList .addweChat { + height: 50px; + text-align: center; + padding-top: 20px; + color: #20a53a; + font-size: 16px; + } - .personalDetails .userList .item { - height: 70px; - padding: 10px 15px; - border: 1px solid #ececec; - margin: 15px 65px; - border-radius: 5px; - } + .personalDetails .userList .item { + height: 70px; + padding: 10px 15px; + border: 1px solid #ececec; + margin: 15px 65px; + border-radius: 5px; + } - .personalDetails .userList .cancelBind { - height: 50px; - width: 60px; - float: right; - line-height: 50px; - text-align: center; - } + .personalDetails .userList .cancelBind { + height: 50px; + width: 60px; + float: right; + line-height: 50px; + text-align: center; + } + .verify_title{ + color: #555; + text-align: center; + font-size: 20px; + height: 40px; + line-height: 40px; + margin-bottom: 20px; + } + .verify_item{ + padding: 0 35px; + } + .verify_item .verify_vice_title{ + font-size: 15.5px; + color: #666; + margin-bottom: 10px; + } + .verify_tips{ + margin: 0 15px; + margin-top: 25px; + padding: 20px 25px; + font-size: 14px; + color: #666; + border-top: 1px solid #ececec; + } + .verify_tips p{ + margin-bottom: 10px; + } + .verify_box{ + background: #f8f8f8; + padding: 15px 25px; + margin-bottom: 20px; + border-radius: 4px; + /* width: 200px; */ + } + .verify_box .verify_box_line{ + height: 25px; + line-height: 25px; + font-size: 14px; + color: #444; + font-weight: 500; + } + .verify_box .verify_box_line span{ + color: #666; + } + .download_Qcode{ + overflow: hidden; + padding: 10px 0; + } + .download_Qcode .item_down{ + width: 50%; + float: left; + border-right: 1px solid #ececee; + text-align: center; + box-sizing: border-box; + } + .download_Qcode .item_down:last-child{ + border-right: none; + } + .download_Qcode .qcode_title{ + margin-bottom: 5px; + } + .download_Qcode .item_down img{ + width: 120px; + } diff --git a/BTPanel/templates/default/layout.html b/BTPanel/templates/default/layout.html index 3a44f18b..e5832870 100644 --- a/BTPanel/templates/default/layout.html +++ b/BTPanel/templates/default/layout.html @@ -93,7 +93,7 @@

{{session['address']}}

{% block content %}{% endblock %} - +
diff --git a/BTPanel/templates/default/login.html b/BTPanel/templates/default/login.html index 5f6dbde0..8bd5509f 100644 --- a/BTPanel/templates/default/login.html +++ b/BTPanel/templates/default/login.html @@ -299,6 +299,42 @@ var data = { username: username, password: md5(md5(password) + '' + '_bt.cn'), code: code } var loadT = layer.msg("{{data['lan']['JS2']}}", { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/login', data, function (rdata) { + if(rdata == '1'){ + layer.close(loadT); + layer.open({ + type:1, + title:false, + area: ['350px', '265px'], + content:'
\ +
Google身份认证
\ +
\ +
\ +
* 请使用Google身份验证器APP获取验证代码
无法验证,点击帮助
\ +
', + success:function(){ + // 点击验证登录 + $('[name="v_code"]').keyup(function(e){ + if(e.keyCode == 13){ + $('#auth_verif_btn').click(); + } + }); + $('#auth_verif_btn').click(function(e){ + data['vcode'] = $('[name="v_code"]').val(); + var loadT = layer.msg("{{data['lan']['JS2']}}", { icon: 16, time: 0, shade: [0.3, '#000'] }); + $.post('/login', data, function (rdata) { + layer.close(loadT); + if(!rdata.status){ + layer.msg(rdata.msg, { icon: 2 }); + return false; + } + layer.msg(rdata.msg, { icon: 16, time: 0, shade: [0.3, '#000'] }); + window.location.href = '/'; + }); + }); + } + }); + return false; + } layer.close(loadT); if (!rdata.status) { $("#errorStr").html(rdata.msg); diff --git a/class/common.py b/class/common.py index bc023f9e..7824b9ee 100644 --- a/class/common.py +++ b/class/common.py @@ -27,7 +27,7 @@ def init(self): if ua: ua = ua.lower(); if ua.find('spider') != -1 or ua.find('bot') != -1: return redirect('https://www.baidu.com'); - g.version = '6.9.34' + g.version = '6.9.36' g.title = public.GetConfigValue('title') g.uri = request.path session['version'] = g.version; diff --git a/class/config.py b/class/config.py index 7c00b0d5..df4ba542 100644 --- a/class/config.py +++ b/class/config.py @@ -8,9 +8,19 @@ # +------------------------------------------------------------------- import public,re,sys,os,nginx,apache,json,time +try: + import pyotp +except: + os.system("pip install pyotp &") + from BTPanel import session,admin_path_checks from flask import request class config: + _setup_path = "/www/server/panel" + _key_file = _setup_path+"/data/two_step_auth.txt" + _bk_key_file = _setup_path + "/data/bk_two_step_auth.txt" + _username_file = _setup_path + "/data/username.txt" + _core_fle_path = _setup_path + '/data/qrcode' def getPanelState(self,get): return os.path.exists('/www/server/panel/data/close.pl'); @@ -708,7 +718,7 @@ def GetSessionCount(self, get): count = 0 for i in d: - if not os.path.exists(i): os.makedirs(i) + if not os.path.exists(i): os.system('mkdir -p %s'%i) list = os.listdir(i) for l in list: if os.path.isdir(i+"/"+l): @@ -875,6 +885,8 @@ def get_cli_php_version(self,get): if not os.path.exists(link_re): return self.auto_cli_php_version(get) import panelSite php_versions = panelSite.panelSite().GetPHPVersion(get) + if len(php_versions)==0: + return public.returnMsg(False,'获取失败!') del(php_versions[0]) for v in php_versions: if link_re.find(v['version']) != -1: return {"select":v,"versions":php_versions} @@ -1045,4 +1057,71 @@ def get_php_session_path(self,get): conf = public.readFile(user_ini_file) if conf and "session.save_path" in conf: return True - return False \ No newline at end of file + return False + + def _create_key(self): + get_token = pyotp.random_base32() # returns a 16 character base32 secret. Compatible with Google Authenticator + public.writeFile(self._key_file,get_token) + username = self.get_random() + public.writeFile(self._username_file, username) + + def get_key(self,get): + key = public.readFile(self._key_file) + username = public.readFile(self._username_file) + if not key: + return public.returnMsg(False, "秘钥不存在,请开启后再试") + if not username: + return public.returnMsg(False, "用户名不存在,请开启后再试") + return {"key":key,"username":username} + + def get_random(self): + import random + seed = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + sa = [] + for i in range(8): + sa.append(random.choice(seed)) + salt = ''.join(sa) + return salt + + def set_two_step_auth(self,get): + if not hasattr(get,"act") or not get.act: + return public.returnMsg(False, "请输入操作方式") + if get.act == "1": + if not os.path.exists(self._core_fle_path): + os.makedirs(self._core_fle_path) + username = public.readFile(self._username_file) + if not os.path.exists(self._bk_key_file): + secret_key = public.readFile(self._key_file) + if not secret_key or not username: + self._create_key() + else: + os.rename(self._bk_key_file,self._key_file) + secret_key = public.readFile(self._key_file) + username = public.readFile(self._username_file) + local_ip = public.GetLocalIp() + if not secret_key: + return public.returnMsg(False,"生成key或username失败,请检查硬盘空间是否不足或目录无法写入[ {} ]".format(self._setup_path+"/data/")) + try: + data = pyotp.totp.TOTP(secret_key).provisioning_uri(username, issuer_name=local_ip) + public.writeFile(self._core_fle_path+'/qrcode.txt',str(data)) + return public.returnMsg(True, "开启成功") + except Exception as e: + return public.returnMsg(False, e) + else: + if os.path.exists(self._key_file): + os.rename(self._key_file,self._bk_key_file) + return public.returnMsg(True, "关闭成功") + + # 检测是否开启双因素验证 + def check_two_step(self,get): + secret_key = public.readFile(self._key_file) + if not secret_key: + return public.returnMsg(False, "没有开启二步验证") + return public.returnMsg(True, "已经开启二步验证") + + # 读取二维码data + def get_qrcode_data(self,get): + data = public.readFile(self._core_fle_path + '/qrcode.txt') + if data: + return data + return public.returnMsg(True, "没有二维码数据,请重新开启") \ No newline at end of file diff --git a/class/crontab.py b/class/crontab.py index 88dd989f..10016298 100644 --- a/class/crontab.py +++ b/class/crontab.py @@ -412,6 +412,7 @@ def WriteShell(self,config): if not os.path.exists(file): public.writeFile(file,'') conf = public.readFile(file) + if type(conf)==bool:return public.returnMsg(False,'读取文件失败!') conf += config + "\n" if public.writeFile(file,conf): if not os.path.exists(u_file): diff --git a/class/database.py b/class/database.py index 3e93c3d3..693c1b7b 100644 --- a/class/database.py +++ b/class/database.py @@ -764,9 +764,11 @@ def GetRunStatus(self,get): if d[0] == g: result[g] = d[1]; except: pass - result['Run'] = int(time.time()) - int(result['Uptime']) + if not 'Run' in result and result: + result['Run'] = int(time.time()) - int(result['Uptime']) tmp = panelMysql.panelMysql().query('show master status'); try: + result['File'] = tmp[0][0]; result['Position'] = tmp[0][1]; except: diff --git a/class/files.py b/class/files.py index 9dd08a03..543030ae 100644 --- a/class/files.py +++ b/class/files.py @@ -7,9 +7,10 @@ # +------------------------------------------------------------------- # | Author: 黄文良 <287962566@qq.com> # +------------------------------------------------------------------- -import sys,os,public,time,json,pwd,cgi,shutil +import sys,os,public,time,json,pwd,cgi,shutil,re from BTPanel import session,request class files: + run_path = None #检查敏感目录 def CheckDir(self,path): path = path.replace('//','/'); @@ -44,6 +45,65 @@ def CheckDir(self,path): public.GetConfigValue('setup_path')) return not path in nDirs + + #网站文件操作前置检测 + def site_path_check(self,get): + try: + if not 'site_id' in get: return True + if not self.run_path: + self.run_path,self.path,self.site_name = self.GetSiteRunPath(get.site_id) + if 'path' in get: + if get.path.find(self.path) != 0: return False + if 'sfile' in get: + if get.sfile.find(self.path) != 0: return False + if 'dfile' in get: + if get.dfile.find(self.path) != 0: return False + return True + except: return True + + #网站目录后续安全处理 + def site_path_safe(self,get): + try: + if not 'site_id' in get: return True + run_path,path,site_name = self.GetSiteRunPath(get.site_id) + if not os.path.exists(run_path): os.makedirs(run_path) + ini_path = run_path + '/.user.ini' + if os.path.exists(ini_path): return True + sess_path = '/www/php_session/%s' % site_name + if not os.path.exists(sess_path): os.makedirs(sess_path) + ini_conf = '''open_basedir={}/:/tmp/:/proc/:{}/ +session.save_path={}/ +session.save_handler = files'''.format(path,sess_path,sess_path) + public.writeFile(ini_path, ini_conf) + public.ExecShell("chmod 644 %s" % ini_path) + public.ExecShell("chdir +i %s" % ini_path) + return True + except: return False + + + #取当站点前运行目录 + def GetSiteRunPath(self,site_id): + try: + find = public.M('sites').where('id=?',(site_id,)).field('path,name').find(); + siteName = find['name'] + sitePath = find['path'] + if public.get_webserver() == 'nginx': + filename = '/www/server/panel/vhost/nginx/' + siteName + '.conf' + if os.path.exists(filename): + conf = public.readFile(filename) + rep = '\s*root\s*(.+);' + tmp1 = re.search(rep,conf) + if tmp1: path = tmp1.groups()[0]; + else: + filename = '/www/server/panel/vhost/apache/' + siteName + '.conf' + if os.path.exists(filename): + conf = public.readFile(filename) + rep = '\s*DocumentRoot\s*"(.+)"\s*\n' + tmp1 = re.search(rep,conf) + if tmp1: path = tmp1.groups()[0]; + return path,sitePath,siteName + except: + return sitePath,sitePath,siteName #检测文件名 def CheckFileName(self,filename): @@ -83,8 +143,6 @@ def UploadFile(self,get): public.WriteLog('TYPE_FILE','FILE_UPLOAD_SUCCESS',(filename,get['path'])); return public.returnMsg(True,'FILE_UPLOAD_SUCCESS'); - - #上传文件2 def upload(self,args): if not 'f_name' in args: @@ -119,7 +177,10 @@ def upload(self,args): if os.path.exists(new_name): if new_name.find('.user.ini') != -1: public.ExecShell("chattr -i " + new_name) - os.remove(new_name) + try: + os.remove(new_name) + except: + os.system("rm -f %s" % new_name) os.renames(save_path, new_name) if 'dir_mode' in args and 'file_mode' in args: mode_tmp1 = args.dir_mode.split(',') @@ -156,6 +217,8 @@ def GetDir(self,get): return public.ReturnMsg(False,'指定目录不存在!') if not os.path.isdir(get.path): get.path = os.path.dirname(get.path) + + if not os.path.isdir(get.path): return public.returnMsg(False,'这不是一个目录!') import pwd dirnames = [] @@ -328,14 +391,18 @@ def SearchFiles(self,get): if count >= max: break; d = self.xssencode(d) if d.lower().find(search) != -1: - my_dirs.append(self.__get_stat(d_list[0] + '/' + d,get.path)) + filename = d_list[0] + '/' + d + if not os.path.exists(filename): continue + my_dirs.append(self.__get_stat(filename,get.path)) count += 1 for f in d_list[2]: if count >= max: break; f = self.xssencode(f) if f.lower().find(search) != -1: - my_files.append(self.__get_stat(d_list[0] + '/' + f,get.path)) + filename = d_list[0] + '/' + f + if not os.path.exists(filename): continue + my_files.append(self.__get_stat(filename,get.path)) count += 1 data = {} data['DIR'] = sorted(my_dirs) @@ -366,6 +433,7 @@ def __get_stat(self,filename,path = None): #计算文件数量 def GetFilesCount(self,path,search): if os.path.isfile(path): return 1 + if not os.path.exists(path):return 0 i=0; for name in os.listdir(path): if search: @@ -425,10 +493,13 @@ def DeleteDir(self,get) : if not self.delete_empty(get.path): return public.returnMsg(False,'DIR_ERR_NOT_EMPTY'); if os.path.exists('data/recycle_bin.pl'): - if self.Mv_Recycle_bin(get): return public.returnMsg(True,'DIR_MOVE_RECYCLE_BIN'); + if self.Mv_Recycle_bin(get): + self.site_path_safe(get) + return public.returnMsg(True,'DIR_MOVE_RECYCLE_BIN'); import shutil shutil.rmtree(get.path) + self.site_path_safe(get) public.WriteLog('TYPE_FILE','DIR_DEL_SUCCESS',(get.path,)) return public.returnMsg(True,'DIR_DEL_SUCCESS') except: @@ -452,8 +523,11 @@ def DeleteFile(self,get): os.system("chattr -i '"+get.path+"'") try: if os.path.exists('data/recycle_bin.pl'): - if self.Mv_Recycle_bin(get): return public.returnMsg(True,'FILE_MOVE_RECYCLE_BIN'); + if self.Mv_Recycle_bin(get): + self.site_path_safe(get) + return public.returnMsg(True,'FILE_MOVE_RECYCLE_BIN'); os.remove(get.path) + self.site_path_safe(get) public.WriteLog('TYPE_FILE','FILE_DEL_SUCCESS',(get.path,)) return public.returnMsg(True,'FILE_DEL_SUCCESS') except: @@ -533,19 +607,27 @@ def Del_Recycle_bin(self,get): rPath = '/www/Recycle_bin/' if sys.version_info[0] == 2: get.path = get.path.encode('utf-8'); dFile = get.path.split('_t_')[0]; + filename = rPath + get.path + tfile = get.path.replace('_bt_','/').split('_t_')[0]; + if not os.path.exists(filename): return public. returnMsg(True,'FILE_DEL_RECYCLE_BIN',(tfile,)) if dFile.find('BTDB_') != -1: import database; - return database.database().DeleteTo(rPath+get.path); - if not self.CheckDir(rPath + get.path): + return database.database().DeleteTo(filename); + if not self.CheckDir(filename): return public.returnMsg(False,'FILE_DANGER'); - os.system('chattr -R -i ' + rPath + get.path) - if os.path.isdir(rPath + get.path): + + os.system('chattr -R -i ' + filename) + if os.path.isdir(filename): import shutil - shutil.rmtree(rPath + get.path); + try: + shutil.rmtree(filename); + except: + os.system("rm -rf " + filename) else: - os.remove(rPath + get.path); - - tfile = get.path.replace('_bt_','/').split('_t_')[0]; + try: + os.remove(filename); + except: + os.system("rm -f " + filename) public.WriteLog('TYPE_FILE','FILE_DEL_RECYCLE_BIN',(tfile,)); return public.returnMsg(True,'FILE_DEL_RECYCLE_BIN',(tfile,)); @@ -565,11 +647,16 @@ def Close_Recycle_bin(self,get): database.database().DeleteTo(path); continue; if os.path.isdir(path): - #os.system('rm -rf ' + path); - shutil.rmtree(path); + try: + shutil.rmtree(path); + except: + os.system('rm -rf ' + path); else: - #os.system('rm -f ' + path); - os.remove(path); + try: + os.remove(path); + except: + os.system('rm -f ' + path); + public.writeSpeed(None,0,0); public.WriteLog('TYPE_FILE','FILE_CLOSE_RECYCLE_BIN'); return public.returnMsg(True,'FILE_CLOSE_RECYCLE_BIN'); @@ -652,6 +739,7 @@ def MvFile(self,get): return public.returnMsg(False,'FILE_DANGER'); try: self.move(get.sfile,get.dfile) + self.site_path_safe(get) if hasattr(get,'rename'): public.WriteLog('TYPE_FILE','[%s]重命名为[%s]' % (get.sfile,get.dfile)) return public.returnMsg(True,'重命名成功!') @@ -736,6 +824,8 @@ def GetFileBody(self,get) : #保存文件 def SaveFileBody(self,get): + if not 'path' in get: return public.returnMsg(False,'path参数不能为空!') + if not 'data' in get: return public.returnMsg(False,'data参数不能为空!') if sys.version_info[0] == 2: get.path = get.path.encode('utf-8'); if not os.path.exists(get.path): if get.path.find('.htaccess') == -1: @@ -965,6 +1055,7 @@ def SetBatchData(self,get): except: continue; public.writeSpeed(None,0,0); + self.site_path_safe(get) public.WriteLog('TYPE_FILE','FILE_ALL_DEL') return public.returnMsg(True,'FILE_ALL_DEL') @@ -1014,6 +1105,7 @@ def BatchPaste(self,get): self.move(sfile,dfile) except: continue; + self.site_path_safe(get) public.WriteLog('TYPE_FILE','FILE_ALL_MOTE',(session['selected']['path'],get.path)) public.writeSpeed(None,0,0); errorCount = len(myfiles) - i @@ -1025,6 +1117,7 @@ def move(self,sfile,dfile): if not os.path.exists(sfile): return False is_dir = os.path.isdir(sfile) if not os.path.exists(dfile) or not is_dir: + if os.path.exists(dfile): os.remove(dfile) shutil.move(sfile, dfile) else: self.copytree(sfile,dfile) diff --git a/class/firewalls.py b/class/firewalls.py index c836d70b..8ed9f7aa 100644 --- a/class/firewalls.py +++ b/class/firewalls.py @@ -214,7 +214,6 @@ def SetSshPort(self,get): if int(port) < 22 or int(port) > 65535: return public.returnMsg(False,'FIREWALL_SSH_PORT_ERR'); ports = ['21','25','80','443','8080','888','8888']; if port in ports: return public.returnMsg(False,'请不要使用常用程序的默认端口!'); - file = '/etc/ssh/sshd_config' conf = public.readFile(file) diff --git a/class/nginx.py b/class/nginx.py index 0091eb9f..7d90f121 100644 --- a/class/nginx.py +++ b/class/nginx.py @@ -21,6 +21,9 @@ class nginx: def GetNginxValue(self): ngconfcontent = public.readFile(self.nginxconf) proxycontent = public.readFile(self.proxyfile) + for i in [[ngconfcontent,self.nginxconf],[proxycontent,self.proxyfile]]: + if not i[0]: + return public.returnMsg(False,"Can not find nginx config file [ {} ]".format(i[1])) unitrep = "[kmgKMG]" conflist = [] ps = ["处理进程,auto表示自动,数字表示进程数","最大并发链接数","连接超时时间","是否开启压缩传输","最小压缩文件","压缩率","最大上传文件","服务器名字的hash表大小","客户端请求头buffer大小"] diff --git a/class/panelDnsapi.py b/class/panelDnsapi.py index 6dfeae51..22636a06 100644 --- a/class/panelDnsapi.py +++ b/class/panelDnsapi.py @@ -50,16 +50,30 @@ def extract_zone(domain_name): - domain_name = domain_name.lstrip("*.") - if domain_name.count(".") > 1: - zone, middle, last = str(domain_name).rsplit(".", 2) - root = ".".join([middle, last]) - acme_txt = "_acme-challenge.%s" % zone - else: - zone = "" - root = domain_name - acme_txt = "_acme-challenge" - return root, zone, acme_txt + domain_name = domain_name.lstrip("*.") + top_domain_list = ['.ac.cn', '.ah.cn', '.bj.cn', '.com.cn', '.cq.cn', '.fj.cn', '.gd.cn', + '.gov.cn', '.gs.cn', '.gx.cn', '.gz.cn', '.ha.cn', '.hb.cn', '.he.cn', + '.hi.cn', '.hk.cn', '.hl.cn', '.hn.cn', '.jl.cn', '.js.cn', '.jx.cn', + '.ln.cn', '.mo.cn', '.net.cn', '.nm.cn', '.nx.cn', '.org.cn'] + old_domain_name = domain_name + m_count = domain_name.count(".") + top_domain = "."+".".join(domain_name.rsplit('.')[-2:]) + new_top_domain = "." + top_domain.replace(".","") + is_tow_top = False + if top_domain in top_domain_list: + is_tow_top = True + domain_name = domain_name[:-len(top_domain)] + new_top_domain + + if domain_name.count(".") > 1: + zone, middle, last = domain_name.rsplit(".", 2) + acme_txt = "_acme-challenge.%s" % zone + if is_tow_top: last = top_domain[1:] + root = ".".join([middle, last]) + else: + zone = "" + root = old_domain_name + acme_txt = "_acme-challenge" + return root, zone, acme_txt class AliyunDns(object): def __init__(self, key, secret, ): @@ -105,6 +119,8 @@ def create_dns_record(self, domain_name, domain_dns_value): "Type": "TXT", "Value": domain_dns_value, } + + print(paramsdata) Signature = self.sign(self.secret, paramsdata) paramsdata['Signature'] = Signature req = requests.get(url=self.url, params=paramsdata) @@ -257,17 +273,6 @@ def get_record_id(self, domain_name): class Dns_com(object): - def extract_zone(self,domain_name): - domain_name = domain_name.lstrip("*.") - if domain_name.count(".") > 1: - zone, middle, last = str(domain_name).rsplit(".", 2) - root = ".".join([middle, last]) - acme_txt = "_acme-challenge.%s" % zone - else: - zone = "" - root = domain_name - acme_txt = "_acme-challenge" - return root, zone, acme_txt def get_dns_obj(self): p_path = '/www/server/panel/plugin/dns' @@ -277,7 +282,7 @@ def get_dns_obj(self): return dns_main.dns_main() def create_dns_record(self, domain_name, domain_dns_value): - root, _, acme_txt = self.extract_zone(domain_name) + root, _, acme_txt = extract_zone(domain_name) print("[DNS]创建TXT记录,", acme_txt, domain_dns_value) result = self.get_dns_obj().add_txt(acme_txt + '.' + root,domain_dns_value) if result == "False": @@ -287,7 +292,7 @@ def create_dns_record(self, domain_name, domain_dns_value): time.sleep(10) def delete_dns_record(self, domain_name, domain_dns_value): - root, _, acme_txt = self.extract_zone(domain_name) + root, _, acme_txt = extract_zone(domain_name) print("[DNS]准备删除TXT记录: ", acme_txt, domain_dns_value) result = self.get_dns_obj().remove_txt(acme_txt + '.' + root) print("[DNS]TXT记录删除成功") diff --git a/class/panelLets.py b/class/panelLets.py index fb0525b8..48004291 100644 --- a/class/panelLets.py +++ b/class/panelLets.py @@ -57,27 +57,43 @@ def dump_pkcs12(self,key_pem=None,cert_pem = None, ca_pem=None, friendly_name=No ret = p12.set_ca_certificates((crypto.load_certificate(crypto.FILETYPE_PEM, ca_pem.encode()),) ) if friendly_name: ret = p12.set_friendlyname(friendly_name.encode()) - return p12 + return p12 + + def extract_zone(self,domain_name): + domain_name = domain_name.lstrip("*.") + top_domain_list = ['.ac.cn', '.ah.cn', '.bj.cn', '.com.cn', '.cq.cn', '.fj.cn', '.gd.cn', + '.gov.cn', '.gs.cn', '.gx.cn', '.gz.cn', '.ha.cn', '.hb.cn', '.he.cn', + '.hi.cn', '.hk.cn', '.hl.cn', '.hn.cn', '.jl.cn', '.js.cn', '.jx.cn', + '.ln.cn', '.mo.cn', '.net.cn', '.nm.cn', '.nx.cn', '.org.cn'] + old_domain_name = domain_name + m_count = domain_name.count(".") + top_domain = "."+".".join(domain_name.rsplit('.')[-2:]) + new_top_domain = "." + top_domain.replace(".","") + is_tow_top = False + if top_domain in top_domain_list: + is_tow_top = True + domain_name = domain_name[:-len(top_domain)] + new_top_domain + + if domain_name.count(".") > 1: + zone, middle, last = domain_name.rsplit(".", 2) + acme_txt = "_acme-challenge.%s" % zone + if is_tow_top: last = top_domain[1:] + root = ".".join([middle, last]) + else: + zone = "" + root = old_domain_name + acme_txt = "_acme-challenge" + return root, zone, acme_txt #获取根域名 def get_root_domain(self,domain_name): - if domain_name.count(".") != 1: - pos = domain_name.rfind(".", 0, domain_name.rfind(".")) - subd = domain_name[:pos] - domain_name = domain_name[pos + 1 :] - return domain_name + d_root,tow_name,acme_txt = self.extract_zone(domain_name) + return d_root #获取acmename def get_acme_name(self,domain_name): - domain_name = domain_name.lstrip("*.") - if domain_name.count(".") > 1: - zone, middle, last = str(domain_name).rsplit(".", 2) - root = ".".join([middle, last]) - acme_name = "_acme-challenge.%s.%s" % (zone,root) - else: - root = domain_name - acme_name = "_acme-challenge.%s" % root - return acme_name + d_root,tow_name,acme_txt = self.extract_zone(domain_name) + return acme_txt + '.' + d_root #格式化错误输出 def get_error(self,error): diff --git a/class/panelPlugin.py b/class/panelPlugin.py index 82c6f171..1dbf17e7 100644 --- a/class/panelPlugin.py +++ b/class/panelPlugin.py @@ -6,7 +6,7 @@ #------------------------------------------------------------------- # Author: 黄文良 <287962566@qq.com> #------------------------------------------------------------------- -import public,os,sys,json,time,psutil,py_compile +import public,os,sys,json,time,psutil,py_compile,re from BTPanel import session,cache if sys.version_info[0] == 3: from importlib import reload class mget: pass; @@ -119,6 +119,7 @@ def check_os_limit(self,osLimit): #安装插件 def install_plugin(self,get): if not self.check_sys_write(): return public.returnMsg(False,'错误:检测到系统关键目录不可写!
1、如果安装了[宝塔系统加固],请先关闭

2、如果安装了云锁,请关闭[系统加固]功能
3、如果安装了安全狗,请关闭[系统防护]功能
4、如果使用了其它安全软件,请先卸载
') + if not 'sName' in get: return public.returnMsg(False,'请指定软件名称!') pluginInfo = self.get_soft_find(get.sName); p_node = '/www/server/panel/install/public.sh' if os.path.exists(p_node): @@ -344,6 +345,10 @@ def check_setup_task(self,sName): else: if name1 == 'pure': name1 = 'pure-ftpd'; if name1 == sName: isTask = task['status']; + + if isTask == '-1' or isTask == '0': + if task['name'].find('upgrade') != -1: isTask = '-2' + break return isTask @@ -352,7 +357,7 @@ def get_local_plugin_info(self,info): m_version = info['versions'].split(".") if len(m_version) < 2: return None if len(m_version) > 2: - tmp = m_version.copy() + tmp = m_version[:] del(tmp[0]) m_version[1] = '.'.join(tmp) @@ -713,23 +718,38 @@ def tips_version(self,versions,version): versions[i]['setup'] = (version[:vLen] == vTmp) return versions + #取pids + def get_pids(self): + pids = [] + for pid in os.listdir('/proc'): + if re.match("^\d+$",pid): pids.append(pid) + return pids #进程是否存在 def process_exists(self,pname,exe = None): - try: - if not self.pids: self.pids = psutil.pids() - for pid in self.pids: - try: - p = psutil.Process(pid) - if p.name() == pname: - if not exe: - return True; - else: - if p.exe() == exe: return True - except:pass - return False - except: return True + if not self.pids: self.pids = psutil.pids() #self.get_pids() # + for pid in self.pids: + l = '/proc/%s/exe' % pid + f = '/proc/%s/comm' % pid + p_exe = '' + p_name = '' + if os.path.exists(l): + p_exe = os.readlink(l) + if not p_name: p_name = p_exe.split('/')[-1] + + if not p_name and os.path.exists(f): + fp = open(f,'r') + p_name = fp.read().strip() + fp.close() + + if not p_name: continue + if p_name == pname: + if not exe: + return True; + else: + if p_exe == exe: return True + return False #取分页 def get_page(self,data,get): @@ -742,7 +762,10 @@ def get_page(self,data,get): info['row'] = self.ROWS; info['p'] = 1 if hasattr(get,'p'): - info['p'] = int(get['p']) + try: + info['p'] = int(get['p']) + except: + info['p'] = 1 info['uri'] = {} info['return_js'] = '' if hasattr(get,'tojs'): diff --git a/class/panelSite.py b/class/panelSite.py index d6145700..9ef0c953 100644 --- a/class/panelSite.py +++ b/class/panelSite.py @@ -289,7 +289,10 @@ def AddSite(self,get): #创建根目录 if not os.path.exists(self.sitePath): - os.makedirs(self.sitePath) + try: + os.makedirs(self.sitePath) + except Exception as ex: + return public.returnMsg(False,'创建根目录失败, %s' % ex) public.ExecShell('chmod -R 755 ' + self.sitePath); public.ExecShell('chown -R www:www ' + self.sitePath); @@ -549,6 +552,7 @@ def AddDomain(self,get): if isError != True: return public.returnMsg(False,'ERROR: 检测到配置文件有错误,请先排除后再操作

'+isError.replace("\n",'
')+'
'); + if not 'domain' in get: return public.returnMsg(False,'请填写域名!') if len(get.domain) < 3: return public.returnMsg(False,'SITE_ADD_DOMAIN_ERR_EMPTY'); domains = get.domain.replace(' ','').split(',') @@ -576,8 +580,6 @@ def AddDomain(self,get): if public.M('binding').where('domain=?',(get.domain,)).count(): return public.returnMsg(False,'SITE_ADD_ERR_DOMAIN_EXISTS'); - - #写配置文件 self.NginxDomain(get) try: @@ -720,6 +722,8 @@ def ApacheDomain(self,get): #删除域名 def DelDomain(self,get): + if not 'id' in get:return public.returnMsg(False,'请选择域名') + if not 'port' in get: return public.returnMsg(False, '请选择端口') sql = public.M('domain'); id=get['id']; port = get.port; @@ -846,7 +850,9 @@ def GetRunPath(self,get): if not get.id: return False; if type(get.id) == list: get.id = get.id[0]['id']; result = self.GetSiteRunPath(get); - return result['runPath']; + if 'runPath' in result: + return result['runPath']; + return False # 创建Let's Encrypt免费证书 @@ -1838,7 +1844,7 @@ def DelDirBinding(self,get): public.M('binding').where("id=?",(id,)).delete(); filename = self.setupPath + '/panel/vhost/rewrite/' + siteName + '_' + binding['path'] + '.conf'; - if os.path.exists(filename): os.remove(filename) + if os.path.exists(filename): os.system('rm -rf %s'%filename) public.serviceReload(); public.WriteLog('TYPE_SITE', 'SITE_BINDING_DEL_SUCCESS',(siteName,binding['path'])); return public.returnMsg(True,'DEL_SUCCESS') @@ -1888,9 +1894,10 @@ def GetIndex(self,get): rep = "\s+index\s+(.+);"; else: rep = "DirectoryIndex\s+(.+)\n"; - - tmp = re.search(rep,conf).groups() - return tmp[0].replace(' ',',') + if re.search(rep,conf): + tmp = re.search(rep,conf).groups() + return tmp[0].replace(' ',',') + return public.returnMsg(False,'获取失败,配置文件中不存在默认文档') #设置默认文档 def SetIndex(self,get): @@ -2018,33 +2025,35 @@ def GetSitePHPVersion(self,get): def SetPHPVersion(self,get): siteName = get.siteName version = get.version + try: + #nginx + file = self.setupPath + '/panel/vhost/nginx/'+siteName+'.conf'; + conf = public.readFile(file); + if conf: + rep = "enable-php-([0-9]{2,3})\.conf"; + tmp = re.search(rep,conf).group() + conf = conf.replace(tmp,'enable-php-'+version+'.conf'); + public.writeFile(file,conf) - #nginx - file = self.setupPath + '/panel/vhost/nginx/'+siteName+'.conf'; - conf = public.readFile(file); - if conf: - rep = "enable-php-([0-9]{2,3})\.conf"; - tmp = re.search(rep,conf).group() - conf = conf.replace(tmp,'enable-php-'+version+'.conf'); - public.writeFile(file,conf) - - #apache - file = self.setupPath + '/panel/vhost/apache/'+siteName+'.conf'; - conf = public.readFile(file); - if conf: - rep = "php-cgi-([0-9]{2,3})\.sock"; - tmp = re.search(rep,conf).group() - conf = conf.replace(tmp,'php-cgi-'+version+'.sock'); - public.writeFile(file,conf) + #apache + file = self.setupPath + '/panel/vhost/apache/'+siteName+'.conf'; + conf = public.readFile(file); + if conf: + rep = "php-cgi-([0-9]{2,3})\.sock"; + tmp = re.search(rep,conf).group() + conf = conf.replace(tmp,'php-cgi-'+version+'.sock'); + public.writeFile(file,conf) - public.serviceReload(); - public.WriteLog("TYPE_SITE", "SITE_PHPVERSION_SUCCESS",(siteName,version)); - return public.returnMsg(True,'SITE_PHPVERSION_SUCCESS',(siteName,version)); + public.serviceReload(); + public.WriteLog("TYPE_SITE", "SITE_PHPVERSION_SUCCESS",(siteName,version)); + return public.returnMsg(True,'SITE_PHPVERSION_SUCCESS',(siteName,version)); + except: return public.returnMsg(False,'设置失败,没有在网站配置文件中找到enable-php-xx相关配置项!') #是否开启目录防御 def GetDirUserINI(self,get): - path = get.path + self.GetRunPath(get); + path = get.path + self.GetRunPath(get) + if not path:return public.returnMsg(False,'获取目录失败') id = get.id; get.name = public.M('sites').where("id=?",(id,)).getField('name'); data = {} @@ -3023,6 +3032,7 @@ def GetHasPwd(self,get): get.siteName = public.M('sites').where('id=?',(get.id,)).getField('name'); get.configFile = self.setupPath + '/panel/vhost/nginx/' + get.siteName + '.conf'; conf = public.readFile(get.configFile); + if type(conf)==bool:return False if conf.find('#AUTH_START') != -1: return True; return False; @@ -3225,19 +3235,15 @@ def GetSiteRunPath(self,get): if os.path.exists(filename): conf = public.readFile(filename) rep = '\s*root\s*(.+);' - path = re.search(rep,conf) - if not path: - return public.returnMsg(False,"获取站点运行目录失败") - path = path.groups()[0] + tmp1 = re.search(rep,conf) + if tmp1: path = tmp1.groups()[0]; else: filename = self.setupPath + '/panel/vhost/apache/' + siteName + '.conf' if os.path.exists(filename): conf = public.readFile(filename) rep = '\s*DocumentRoot\s*"(.+)"\s*\n' - path = re.search(rep,conf) - if not path: - return public.returnMsg(False,"获取站点运行目录失败") - path = path.groups()[0] + tmp1 = re.search(rep,conf) + if tmp1: path = tmp1.groups()[0]; data = {} if sitePath == path: @@ -3259,7 +3265,6 @@ def GetSiteRunPath(self,get): data['dirs'] = dirnames; return data; - #设置当前站点运行目录 def SetSiteRunPath(self,get): @@ -3419,6 +3424,7 @@ def GetSecurity(self,get): file = '/www/server/panel/vhost/nginx/' + get.name + '.conf'; conf = public.readFile(file); data = {} + if type(conf)==bool:return public.returnMsg(False,'读取配置文件失败!') if conf.find('SECURITY-START') != -1: rep = "#SECURITY-START(\n|.){1,500}#SECURITY-END"; tmp = re.search(rep,conf).group() diff --git a/class/panelTask.py b/class/panelTask.py index 6a87d68b..4603b25e 100644 --- a/class/panelTask.py +++ b/class/panelTask.py @@ -159,11 +159,14 @@ def execute_task(self,id,task_type,task_shell,other=''): #开始检测任务 def start_task(self): noe = False + n = 0 while True: try: time.sleep(1); - if not os.path.exists(self.__task_tips) and noe: continue; + n+=1 + if not os.path.exists(self.__task_tips) and noe and n < 60: continue; if os.path.exists(self.__task_tips): os.remove(self.__task_tips) + n = 0 public.M(self.__table).where('status=?',('-1',)).setField('status',0) task_list = self.get_task_list(0) for task_info in task_list: diff --git a/class/password.py b/class/password.py new file mode 100644 index 00000000..b5cbd4e0 --- /dev/null +++ b/class/password.py @@ -0,0 +1,217 @@ +# coding: utf-8 +# +------------------------------------------------------------------- +# | 宝塔Linux面板 +# +------------------------------------------------------------------- +# | Copyright (c) 2015-2099 宝塔软件(http://bt.cn) All rights reserved. +# +------------------------------------------------------------------- +# | Author: 梁凯强 <1249648969@qq.com> +# +------------------------------------------------------------------- +# +-------------------------------------------------------------------- +# | 密码管理 +# +-------------------------------------------------------------------- +import sys, os +if sys.version_info[0] == 2: + reload(sys) + sys.setdefaultencoding('utf-8') +os.chdir('/www/server/panel') +sys.path.append("class/") +import re +import public,data,database,config + +class password: + def __init__(self): + self.__data=data.data() + self.__database=database.database() + self.__config=config.config() + + #设置面板密码 + def set_panel_password(self,get): + get.password1=get.password + get.password2 = get.password + data=self.__config.setPassword(get) + return data + + #查看面板用户名 + def get_panel_username(self,get): + data=public.M('users').where("id=?", (1,)).getField('username') + if data: + return data + else: + return False + + # 设置root 密码 + def set_root_password(self,get): + os.system("echo"+get.user+":"+get.password+"|chpasswd") + return True + + #查看mysql_root密码 + def get_mysql_root(self,get): + password = public.M('config').where("id=?",(1,)).getField('mysql_root') + return public.returnMsg(True, password) + + #设置mysql_root 密码 + def set_mysql_password(self,get): + if 'password' in get: + resutl=self.__database.SetupPassword(get) + return resutl + else: + return public.returnMsg(False, 'password参数不能为空') + + + # MySQL 的其他账户设置 + #获取其他mysql的信息 + def get_databses(self,get): + data=public.M('databases').select() + return public.returnMsg(True, data) + + # 修改MySQL 其他账户的密码 + def rem_mysql_pass(self,get): + ''' + 参数 三个 + id 数据库ID, name:数据库名称, password:数据库密码 + ''' + data=self.__database.ResDatabasePassword(get) + return data + + # 修改其他Mysql 账户的权限 + def set_mysql_access(self,get): + ''' + 参数 三个 + name:数据库名称, dataAccess: 权限 access 权限 + ''' + data=self.__database.SetDatabaseAccess(get) + return data + + + #################### SSH 的基础设置#################### + + # 开启密码登陆 + def SetPassword(self, get): + ssh_password = '\n#?PasswordAuthentication\s\w+' + file = public.readFile('/etc/ssh/sshd_config') + if len(re.findall(ssh_password, file)) == 0: + file_result = file + '\nPasswordAuthentication yes' + else: + file_result = re.sub(ssh_password, '\nPasswordAuthentication yes', file) + self.Wirte('/etc/ssh/sshd_config', file_result) + self.RestartSsh() + return public.returnMsg(True, '开启成功') + + # 设置ssh_key + def SetSshKey(self, get): + '''''' + type_list = ['rsa', 'dsa'] + ssh_type = ['yes', 'no'] + ssh = get.ssh + if not ssh in ssh_type: return public.returnMsg(False, 'ssh选项失败') + type = get.type + if not type in type_list: return public.returnMsg(False, '加密方式错误') + file = ['/root/.ssh/id_rsa.pub', '/root/.ssh/id_rsa', '/root/.ssh/authorized_keys'] + for i in file: + if os.path.exists(i): + os.remove(i) + os.system("ssh-keygen -t %s -P '' -f ~/.ssh/id_rsa |echo y" % type) + if os.path.exists(file[0]): + public.ExecShell('cat %s >%s && chmod 600 %s' % (file[0], file[-1], file[-1])) + rec = '\n#?RSAAuthentication\s\w+' + rec2 = '\n#?PubkeyAuthentication\s\w+' + file = public.readFile('/etc/ssh/sshd_config') + if len(re.findall(rec, file)) == 0: file = file + '\nRSAAuthentication yes' + if len(re.findall(rec2, file)) == 0: file = file + '\nPubkeyAuthentication yes' + file_ssh = re.sub(rec, '\nRSAAuthentication yes', file) + file_result = re.sub(rec2, '\nPubkeyAuthentication yes', file_ssh) + if ssh == 'no': + ssh_password = '\n#?PasswordAuthentication\s\w+' + if len(re.findall(ssh_password, file_result)) == 0: + file_result = file_result + '\nPasswordAuthentication no' + else: + file_result = re.sub(ssh_password, '\nPasswordAuthentication no', file_result) + self.Wirte('/etc/ssh/sshd_config', file_result) + self.RestartSsh() + return public.returnMsg(True, '开启成功') + else: + return public.returnMsg(False, '开启失败') + + + # 关闭sshkey + def StopKey(self, get): + file = ['/root/.ssh/id_rsa.pub', '/root/.ssh/id_rsa', '/root/.ssh/authorized_keys'] + rec = '\n#?RSAAuthentication\s\w+' + rec2 = '\n#?PubkeyAuthentication\s\w+' + file = public.readFile('/etc/ssh/sshd_config') + file_ssh = re.sub(rec, '\n#RSAAuthentication no', file) + file_result = re.sub(rec2, '\n#PubkeyAuthentication no', file_ssh) + self.Wirte('/etc/ssh/sshd_config', file_result) + self.SetPassword(get) + self.RestartSsh() + return public.returnMsg(True, '关闭成功') + # 读取配置文件 获取当前状态 + + def GetConfig(self, get): + result = {} + file = public.readFile('/etc/ssh/sshd_config') + rec = '\n#?RSAAuthentication\s\w+' + pubkey = '\n#?PubkeyAuthentication\s\w+' + ssh_password = '\nPasswordAuthentication\s\w+' + ret = re.findall(ssh_password, file) + if not ret: + result['password'] = 'no' + else: + if ret[-1].split()[-1] == 'yes': + result['password'] = 'yes' + else: + result['password'] = 'no' + pubkey = re.findall(pubkey, file) + if not pubkey: + result['pubkey'] = 'no' + else: + if pubkey[-1].split()[-1] == 'no': + result['pubkey'] = 'no' + else: + result['pubkey'] = 'yes' + rsa_auth = re.findall(rec, file) + if not rsa_auth: + result['rsa_auth'] = 'no' + else: + if rsa_auth[-1].split()[-1] == 'no': + result['rsa_auth'] = 'no' + else: + result['rsa_auth'] = 'yes' + return result + + # 关闭密码方式 + def StopPassword(self, get): + file = public.readFile('/etc/ssh/sshd_config') + ssh_password = '\n#?PasswordAuthentication\s\w+' + file_result = re.sub(ssh_password, '\nPasswordAuthentication no', file) + self.Wirte('/etc/ssh/sshd_config', file_result) + self.RestartSsh() + return public.returnMsg(True, '关闭成功') + + #显示key文件 + def GetKey(self, get): + file = '/root/.ssh/id_rsa' + if not os.path.exists(file): return public.returnMsg(True, '') + ret = public.readFile(file) + return public.returnMsg(True, ret) + + # 下载 + def Download(self, get): + if os.path.exists('/root/.ssh/id_rsa'): + ret = '/download?filename=/root/.ssh/id_rsa' + return public.returnMsg(True, ret) + + # 写入配置文件 + def Wirte(self, file, ret): + result = public.writeFile(file, ret) + return result + + def RestartSsh(self): + version = public.readFile('/etc/redhat-release') + act = 'restart' + if not os.path.exists('/etc/redhat-release'): + public.ExecShell('service ssh ' + act) + elif version.find(' 7.') != -1: + public.ExecShell("systemctl " + act + " sshd.service") + else: + public.ExecShell("/etc/init.d/sshd " + act) diff --git a/class/public.py b/class/public.py index 7fc2911a..16774761 100644 --- a/class/public.py +++ b/class/public.py @@ -272,7 +272,10 @@ def GetJson(data): """ from json import dumps if data == bytes: data = data.decode('utf-8') - return dumps(data) + try: + return dumps(data) + except: + return dumps(returnMsg(False,"错误的响应: %s" % str(data))) def getJson(data): return GetJson(data) @@ -479,17 +482,14 @@ def GetLocalIp(): filename = 'data/iplist.txt' ipaddress = readFile(filename) if not ipaddress: - import urllib2 url = 'http://pv.sohu.com/cityjson?ie=utf-8' - opener = urllib2.urlopen(url) - m_str = opener.read() + m_str = HttpGet(url) ipaddress = re.search('\d+.\d+.\d+.\d+',m_str).group(0) WriteFile(filename,ipaddress) c_ip = check_ip(ipaddress) if not c_ip: return GetHost() return ipaddress except: - return get_error_info() try: url = GetConfigValue('home') + '/Api/getIpAddress'; return HttpGet(url) @@ -1412,7 +1412,7 @@ def check_domain_panel(): errorStr = ReadFile('./BTPanel/templates/' + GetConfigValue('template') + '/error2.html') try: errorStr = errorStr.format(getMsg('PAGE_ERR_TITLE'),getMsg('PAGE_ERR_DOMAIN_H1'),getMsg('PAGE_ERR_DOMAIN_P1'),getMsg('PAGE_ERR_DOMAIN_P2'),getMsg('PAGE_ERR_DOMAIN_P3'),getMsg('NAME'),getMsg('PAGE_ERR_HELP')) - except IndexError:pass + except:pass return errorStr return False @@ -1463,6 +1463,26 @@ def check_port_stat(port): if temp['local']: result +=2; return result; + +#同步时间 +def sync_date(): + tip_file = "/dev/shm/last_sync_time.pl" + s_time = int(time.time()) + try: + if os.path.exists(tip_file): + if s_time - int(readFile(tip_file)) < 60: return False + os.remove(tip_file) + time_str = HttpGet('http://www.bt.cn/api/index/get_time') + new_time = int(time_str) + time_arr = time.localtime(new_time) + date_str = time.strftime("%Y-%m-%d %H:%M:%S", time_arr) + os.system('date -s "%s"' % date_str) + writeFile(tip_file,str(s_time)) + return True + except: + if os.path.exists(tip_file): os.remove(tip_file) + return False + #取通用对象 class dict_obj: def __contains__(self, key): diff --git a/class/pyotp/__init__.py b/class/pyotp/__init__.py new file mode 100644 index 00000000..b400ff4f --- /dev/null +++ b/class/pyotp/__init__.py @@ -0,0 +1,23 @@ +from __future__ import (absolute_import, division, + print_function, unicode_literals) + +from pyotp.hotp import HOTP # noqa +from pyotp.otp import OTP # noqa +from pyotp.totp import TOTP # noqa +from . import utils # noqa + +def random_base32(length=16, random=None, + chars=list('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567')): + + # Use secrets module if available (Python version >= 3.6) per PEP 506 + try: + import secrets + random = secrets.SystemRandom() + except ImportError: + import random as _random + random = _random.SystemRandom() + + return ''.join( + random.choice(chars) + for _ in range(length) + ) diff --git a/class/pyotp/compat.py b/class/pyotp/compat.py new file mode 100644 index 00000000..56499098 --- /dev/null +++ b/class/pyotp/compat.py @@ -0,0 +1,10 @@ +from __future__ import absolute_import, division, print_function, unicode_literals + +import sys + +USING_PYTHON2 = True if sys.version_info < (3, 0) else False + +if USING_PYTHON2: + str = unicode # noqa +else: + str = str diff --git a/class/pyotp/hotp.py b/class/pyotp/hotp.py new file mode 100644 index 00000000..bb9e3f1d --- /dev/null +++ b/class/pyotp/hotp.py @@ -0,0 +1,58 @@ +from __future__ import absolute_import, division, print_function, unicode_literals + +from . import utils +from .otp import OTP +from .compat import str + +class HOTP(OTP): + """ + Handler for HMAC-based OTP counters. + """ + def at(self, count): + """ + Generates the OTP for the given count. + + :param count: the OTP HMAC counter + :type count: int + :returns: OTP + :rtype: str + """ + return self.generate_otp(count) + + def verify(self, otp, counter): + """ + Verifies the OTP passed in against the current counter OTP. + + :param otp: the OTP to check against + :type otp: str + :param count: the OTP HMAC counter + :type count: int + """ + return utils.strings_equal(str(otp), str(self.at(counter))) + + def provisioning_uri(self, name, initial_count=0, issuer_name=None): + """ + Returns the provisioning URI for the OTP. This can then be + encoded in a QR Code and used to provision an OTP app like + Google Authenticator. + + See also: + https://github.com/google/google-authenticator/wiki/Key-Uri-Format + + :param name: name of the user account + :type name: str + :param initial_count: starting HMAC counter value, defaults to 0 + :type initial_count: int + :param issuer_name: the name of the OTP issuer; this will be the + organization title of the OTP entry in Authenticator + :returns: provisioning URI + :rtype: str + """ + return utils.build_uri( + self.secret, + name, + initial_count=initial_count, + issuer_name=issuer_name, + algorithm=self.digest().name, + digits=self.digits + ) diff --git a/class/pyotp/otp.py b/class/pyotp/otp.py new file mode 100644 index 00000000..45afcf3d --- /dev/null +++ b/class/pyotp/otp.py @@ -0,0 +1,66 @@ +from __future__ import absolute_import, division, print_function, unicode_literals + +import base64 +import hashlib +import hmac +from .compat import str + +class OTP(object): + """ + Base class for OTP handlers. + """ + def __init__(self, s, digits=6, digest=hashlib.sha1): + """ + :param s: secret in base32 format + :type s: str + :param digits: number of integers in the OTP. Some apps expect this to be 6 digits, others support more. + :type digits: int + :param digest: digest function to use in the HMAC (expected to be sha1) + :type digest: callable + """ + self.digits = digits + self.digest = digest + self.secret = s + + def generate_otp(self, input): + """ + :param input: the HMAC counter value to use as the OTP input. + Usually either the counter, or the computed integer based on the Unix timestamp + :type input: int + """ + if input < 0: + raise ValueError('input must be positive integer') + hasher = hmac.new(self.byte_secret(), self.int_to_bytestring(input), self.digest) + hmac_hash = bytearray(hasher.digest()) + offset = hmac_hash[-1] & 0xf + code = ((hmac_hash[offset] & 0x7f) << 24 | + (hmac_hash[offset + 1] & 0xff) << 16 | + (hmac_hash[offset + 2] & 0xff) << 8 | + (hmac_hash[offset + 3] & 0xff)) + str_code = str(code % 10 ** self.digits) + while len(str_code) < self.digits: + str_code = '0' + str_code + + return str_code + + def byte_secret(self): + missing_padding = len(self.secret) % 8 + if missing_padding != 0: + self.secret += '=' * (8 - missing_padding) + return base64.b32decode(self.secret, casefold=True) + + @staticmethod + def int_to_bytestring(i, padding=8): + """ + Turns an integer to the OATH specified + bytestring, which is fed to the HMAC + along with the secret + """ + result = bytearray() + while i != 0: + result.append(i & 0xFF) + i >>= 8 + # It's necessary to convert the final result from bytearray to bytes + # because the hmac functions in python 2.6 and 3.3 don't work with + # bytearray + return bytes(bytearray(reversed(result)).rjust(padding, b'\0')) diff --git a/class/pyotp/totp.py b/class/pyotp/totp.py new file mode 100644 index 00000000..50faf8bd --- /dev/null +++ b/class/pyotp/totp.py @@ -0,0 +1,92 @@ +from __future__ import absolute_import, division, print_function, unicode_literals + +import datetime +import time + +from . import utils +from .otp import OTP +from .compat import str + +class TOTP(OTP): + """ + Handler for time-based OTP counters. + """ + def __init__(self, *args, **kwargs): + """ + :param interval: the time interval in seconds + for OTP. This defaults to 30. + :type interval: int + """ + self.interval = kwargs.pop('interval', 30) + super(TOTP, self).__init__(*args, **kwargs) + + def at(self, for_time, counter_offset=0): + """ + Accepts either a Unix timestamp integer or a datetime object. + + :param for_time: the time to generate an OTP for + :type for_time: int or datetime + :param counter_offset: the amount of ticks to add to the time counter + :returns: OTP value + :rtype: str + """ + if not isinstance(for_time, datetime.datetime): + for_time = datetime.datetime.fromtimestamp(int(for_time)) + return self.generate_otp(self.timecode(for_time) + counter_offset) + + def now(self): + """ + Generate the current time OTP + + :returns: OTP value + :rtype: str + """ + return self.generate_otp(self.timecode(datetime.datetime.now())) + + def verify(self, otp, for_time=None, valid_window=0): + """ + Verifies the OTP passed in against the current time OTP. + + :param otp: the OTP to check against + :type otp: str + :param for_time: Time to check OTP at (defaults to now) + :type for_time: int or datetime + :param valid_window: extends the validity to this many counter ticks before and after the current one + :type valid_window: int + :returns: True if verification succeeded, False otherwise + :rtype: bool + """ + if for_time is None: + for_time = datetime.datetime.now() + + if valid_window: + for i in range(-valid_window, valid_window + 1): + if utils.strings_equal(str(otp), str(self.at(for_time, i))): + return True + return False + + return utils.strings_equal(str(otp), str(self.at(for_time))) + + def provisioning_uri(self, name, issuer_name=None): + """ + Returns the provisioning URI for the OTP. This can then be + encoded in a QR Code and used to provision an OTP app like + Google Authenticator. + + See also: + https://github.com/google/google-authenticator/wiki/Key-Uri-Format + + :param name: name of the user account + :type name: str + :param issuer_name: the name of the OTP issuer; this will be the + organization title of the OTP entry in Authenticator + :returns: provisioning URI + :rtype: str + """ + return utils.build_uri(self.secret, name, issuer_name=issuer_name, + algorithm=self.digest().name, + digits=self.digits, period=self.interval) + + def timecode(self, for_time): + i = time.mktime(for_time.timetuple()) + return int(i / self.interval) diff --git a/class/pyotp/utils.py b/class/pyotp/utils.py new file mode 100644 index 00000000..ebfe3adb --- /dev/null +++ b/class/pyotp/utils.py @@ -0,0 +1,109 @@ +from __future__ import absolute_import, division, print_function, unicode_literals + +import unicodedata +try: + from itertools import izip_longest +except ImportError: + from itertools import zip_longest as izip_longest + +try: + from urllib.parse import quote, urlencode +except ImportError: + from urllib import quote, urlencode + + +def build_uri(secret, name, initial_count=None, issuer_name=None, + algorithm=None, digits=None, period=None): + """ + Returns the provisioning URI for the OTP; works for either TOTP or HOTP. + + This can then be encoded in a QR Code and used to provision the Google + Authenticator app. + + For module-internal use. + + See also: + https://github.com/google/google-authenticator/wiki/Key-Uri-Format + + :param secret: the hotp/totp secret used to generate the URI + :type secret: str + :param name: name of the account + :type name: str + :param initial_count: starting counter value, defaults to None. + If none, the OTP type will be assumed as TOTP. + :type initial_count: int + :param issuer_name: the name of the OTP issuer; this will be the + organization title of the OTP entry in Authenticator + :type issuer_name: str + :param algorithm: the algorithm used in the OTP generation. + :type algorithm: str + :param digits: the length of the OTP generated code. + :type digits: int + :param period: the number of seconds the OTP generator is set to + expire every code. + :type period: int + :returns: provisioning uri + :rtype: str + """ + # initial_count may be 0 as a valid param + is_initial_count_present = (initial_count is not None) + + # Handling values different from defaults + is_algorithm_set = (algorithm is not None and algorithm != 'sha1') + is_digits_set = (digits is not None and digits != 6) + is_period_set = (period is not None and period != 30) + + otp_type = 'hotp' if is_initial_count_present else 'totp' + base_uri = 'otpauth://{0}/{1}?{2}' + + url_args = {'secret': secret} + + label = quote(name) + if issuer_name is not None: + label = quote(issuer_name) + ':' + label + url_args['issuer'] = issuer_name + + if is_initial_count_present: + url_args['counter'] = initial_count + if is_algorithm_set: + url_args['algorithm'] = algorithm.upper() + if is_digits_set: + url_args['digits'] = digits + if is_period_set: + url_args['period'] = period + + uri = base_uri.format(otp_type, label, urlencode(url_args).replace("+", "%20")) + return uri + + +def _compare_digest(s1, s2): + differences = 0 + for c1, c2 in izip_longest(s1, s2): + if c1 is None or c2 is None: + differences = 1 + continue + differences |= ord(c1) ^ ord(c2) + return differences == 0 + + +try: + # Python 3.3+ and 2.7.7+ include a timing-attack-resistant + # comparison function, which is probably more reliable than ours. + # Use it if available. + from hmac import compare_digest +except ImportError: + compare_digest = _compare_digest + + +def strings_equal(s1, s2): + """ + Timing-attack resistant string comparison. + + Normal comparison using == will short-circuit on the first mismatching + character. This avoids that by scanning the whole string, though we + still reveal to a timing attack whether the strings are the same + length. + """ + s1 = unicodedata.normalize('NFKC', s1) + s2 = unicodedata.normalize('NFKC', s2) + return compare_digest(s1.encode("utf-8"), s2.encode("utf-8")) diff --git a/class/san_baseline.py b/class/san_baseline.py index 92739b52..2385b0c4 100644 --- a/class/san_baseline.py +++ b/class/san_baseline.py @@ -680,6 +680,7 @@ def user_not_password(self): # 计划任务 安全 def tasks_security(self): ret = [] + if not os.path.exists(public.get_cron_path()):return ret f = open(public.get_cron_path(), 'r') for i in f.readlines(): diff --git a/class/sewer/dns_providers/dnspod.py b/class/sewer/dns_providers/dnspod.py index 59a635ff..33cf0bbf 100644 --- a/class/sewer/dns_providers/dnspod.py +++ b/class/sewer/dns_providers/dnspod.py @@ -1,3 +1,4 @@ +#coding: utf-8 try: import urllib.parse as urlparse except: @@ -27,28 +28,56 @@ def __init__(self, DNSPOD_ID, DNSPOD_API_KEY, DNSPOD_API_BASE_URL="https://dnsap self.DNSPOD_API_BASE_URL = DNSPOD_API_BASE_URL super(DNSPodDns, self).__init__() + def extract_zone(self,domain_name): + domain_name = domain_name.lstrip("*.") + top_domain_list = ['.ac.cn', '.ah.cn', '.bj.cn', '.com.cn', '.cq.cn', '.fj.cn', '.gd.cn', + '.gov.cn', '.gs.cn', '.gx.cn', '.gz.cn', '.ha.cn', '.hb.cn', '.he.cn', + '.hi.cn', '.hk.cn', '.hl.cn', '.hn.cn', '.jl.cn', '.js.cn', '.jx.cn', + '.ln.cn', '.mo.cn', '.net.cn', '.nm.cn', '.nx.cn', '.org.cn'] + old_domain_name = domain_name + m_count = domain_name.count(".") + top_domain = "."+".".join(domain_name.rsplit('.')[-2:]) + new_top_domain = "." + top_domain.replace(".","") + is_tow_top = False + if top_domain in top_domain_list: + is_tow_top = True + domain_name = domain_name[:-len(top_domain)] + new_top_domain + + if domain_name.count(".") > 1: + zone, middle, last = domain_name.rsplit(".", 2) + acme_txt = "_acme-challenge.%s" % zone + if is_tow_top: last = top_domain[1:] + root = ".".join([middle, last]) + else: + zone = "" + root = old_domain_name + acme_txt = "_acme-challenge" + return root, zone, acme_txt + def create_dns_record(self, domain_name, domain_dns_value): self.logger.info("create_dns_record") # if we have been given a wildcard name, strip wildcard - domain_name = domain_name.lstrip("*.") - subd = "" - if domain_name.count(".") != 1: # not top level domain - pos = domain_name.rfind(".", 0, domain_name.rfind(".")) - subd = domain_name[:pos] - domain_name = domain_name[pos + 1 :] - if subd != "": - subd = "." + subd + #domain_name = domain_name.lstrip("*.") + #subd = "" + #if domain_name.count(".") != 1: # not top level domain + # pos = domain_name.rfind(".", 0, domain_name.rfind(".")) + # subd = domain_name[:pos] + # domain_name = domain_name[pos + 1 :] + # if subd != "": + # subd = "." + subd + domain_name,_,subd = self.extract_zone(domain_name) url = urlparse.urljoin(self.DNSPOD_API_BASE_URL, "Record.Create") body = { "record_type": "TXT", "domain": domain_name, - "sub_domain": "_acme-challenge" + subd, + "sub_domain": subd, "value": domain_dns_value, "record_line_id": "0", "format": "json", "login_token": self.DNSPOD_LOGIN, } + print(body) create_dnspod_dns_record_response = requests.post( url, data=body, timeout=self.HTTP_TIMEOUT ).json() @@ -71,18 +100,19 @@ def create_dns_record(self, domain_name, domain_dns_value): def delete_dns_record(self, domain_name, domain_dns_value): self.logger.info("delete_dns_record") - domain_name = domain_name.lstrip("*.") - subd = "" - if domain_name.count(".") != 1: # not top level domain - pos = domain_name.rfind(".", 0, domain_name.rfind(".")) - subd = domain_name[:pos] - domain_name = domain_name[pos + 1 :] - if subd != "": - subd = "." + subd + #domain_name = domain_name.lstrip("*.") + #subd = "" + #if domain_name.count(".") != 1: # not top level domain + # pos = domain_name.rfind(".", 0, domain_name.rfind(".")) + # subd = domain_name[:pos] + # domain_name = domain_name[pos + 1 :] + # if subd != "": + # subd = "." + subd + domain_name,_,subd = self.extract_zone(domain_name) url = urllib.parse.urljoin(self.DNSPOD_API_BASE_URL, "Record.List") # pos = domain_name.rfind(".",0, domain_name.rfind(".")) - subdomain = "_acme-challenge." + subd + subdomain = subd rootdomain = domain_name body = { "login_token": self.DNSPOD_LOGIN, @@ -91,6 +121,7 @@ def delete_dns_record(self, domain_name, domain_dns_value): "subdomain": subdomain, "record_type": "TXT", } + print(body) list_dns_response = requests.post(url, data=body, timeout=self.HTTP_TIMEOUT).json() if list_dns_response["status"]["code"] != "1": self.logger.error( @@ -119,3 +150,5 @@ def delete_dns_record(self, domain_name, domain_dns_value): ) self.logger.info("delete_dns_record_success") + + diff --git a/class/site_dir_auth.py b/class/site_dir_auth.py index 002f16ff..726d681f 100644 --- a/class/site_dir_auth.py +++ b/class/site_dir_auth.py @@ -71,10 +71,12 @@ def set_dir_auth(self,get): if not get.name: return public.returnMsg(False, '请输入名称') - if site_dir[0] == "/": - site_dir = site_dir[1:] - if site_dir[-1] == "/": - site_dir = site_dir[:-1] + if site_dir[0] != "/" or site_dir[-1] != "/": + return public.returnMsg(False, '目录格式不正确') + # if site_dir[0] == "/": + # site_dir = site_dir[1:] + # if site_dir[-1] == "/": + # site_dir = site_dir[:-1] passwd = public.hasPwd(get.password) site_info = self.get_site_info(get.id) site_name = site_info["site_name"] @@ -126,7 +128,7 @@ def set_dir_auth_file(self,site_path,site_name,name,username,site_dir,auth_file) file_path = "{setup_path}/panel/vhost/{webserver}/dir_auth/{site_name}" if i == "nginx": # 设置nginx - conf = '''location ~* ^/%s/* { + conf = '''location ~* ^%s* { #AUTH_START auth_basic "Authorization"; auth_basic_user_file %s; @@ -134,7 +136,7 @@ def set_dir_auth_file(self,site_path,site_name,name,username,site_dir,auth_file) }''' % (site_dir,auth_file) else: # 设置apache - conf = ''' + conf = ''' #AUTH_START AuthType basic AuthName "Authorization " diff --git a/class/userlogin.py b/class/userlogin.py index fc15d757..f8bf5f3f 100644 --- a/class/userlogin.py +++ b/class/userlogin.py @@ -14,7 +14,7 @@ class userlogin: def request_post(self,post): - if not (hasattr(post, 'username') or hasattr(post, 'password') or hasattr(post, 'code')): + if not hasattr(post, 'username') or not hasattr(post, 'password'): return public.returnJson(False,'LOGIN_USER_EMPTY'),json_header self.error_num(False) @@ -26,7 +26,8 @@ def request_post(self,post): userInfo = sql.table('users').where("id=?",(1,)).field('id,username,password').find() m_code = cache.get('codeStr') if 'code' in session: - if session['code']: + if session['code'] and not 'is_verify_password' in session: + if not hasattr(post, 'code'): return public.returnJson(False,'验证码不能为空!'),json_header if not public.checkCode(post.code): public.WriteLog('TYPE_LOGIN','LOGIN_ERR_CODE',('****','****',public.GetClientIp())); return public.returnJson(False,'CODE_ERR'),json_header @@ -36,18 +37,32 @@ def request_post(self,post): public.WriteLog('TYPE_LOGIN','LOGIN_ERR_PASS',('****','******',public.GetClientIp())); num = self.limit_address('+'); return public.returnJson(False,'LOGIN_USER_ERR',(str(num),)),json_header - - session['login'] = True; - session['username'] = userInfo['username']; - public.WriteLog('TYPE_LOGIN','LOGIN_SUCCESS',(userInfo['username'],public.GetClientIp())); - self.limit_address('-'); - cache.delete('panelNum') - cache.delete('dologin') - sess_input_path = 'data/session_last.pl' - public.writeFile(sess_input_path,str(int(time.time()))) - self.set_request_token() - self.login_token() - return public.returnJson(True,'LOGIN_SUCCESS'),json_header + _key_file = "/www/server/panel/data/two_step_auth.txt" + if hasattr(post,'vcode'): + if self.limit_address('?',v="vcode") < 1: return public.returnJson(False,'您多次验证失败,禁止10分钟'),json_header + import pyotp + secret_key = public.readFile(_key_file) + if not secret_key: + return public.returnJson(False, "没有找到key,请尝试在命令行关闭谷歌验证后在开启"),json_header + t = pyotp.TOTP(secret_key) + result = t.verify(post.vcode) + if not result: + if public.sync_date(): result = t.verify(post.vcode) + if not result: + num = self.limit_address('++',v="vcode") + return public.returnJson(False, '验证失败,您还可以尝试[{}]次!'.format(num)), json_header + now = int(time.time()) + public.writeFile("/www/server/panel/data/dont_vcode_ip.txt",json.dumps({"client_ip":public.GetClientIp(),"add_time":now})) + self.limit_address('--',v="vcode") + return self._set_login_session(userInfo) + + acc_client_ip = self.check_two_step_auth() + + if not os.path.exists(_key_file) or acc_client_ip: + return self._set_login_session(userInfo) + self.limit_address('-') + session['is_verify_password'] = True + return "1" except Exception as ex: stringEx = str(ex) if stringEx.find('unsupported') != -1 or stringEx.find('-1') != -1: @@ -139,10 +154,10 @@ def error_num(self,s = True): if num > 6: session['code'] = True; #IP限制 - def limit_address(self,type): + def limit_address(self,type,v=""): import time clientIp = public.GetClientIp(); - numKey = 'limitIpNum_' + clientIp + numKey = 'limitIpNum_' + v + clientIp limit = 6; outTime = 600; try: @@ -158,14 +173,64 @@ def limit_address(self,type): self.error_num(); session['code'] = True; return limit - (num1+1); - + + #计数验证器 + if type == '++': + cache.inc(numKey,1) + self.error_num(); + session['code'] = False; + return limit - (num1+1); + #清空 if type == '-': cache.delete(numKey); session['code'] = False; return 1; + + #清空验证器 + if type == '--': + cache.delete(numKey); + session['code'] = False; + return 1; return limit - num1; except: return limit; + # 登录成功设置session + def _set_login_session(self,userInfo): + try: + session['login'] = True + session['username'] = userInfo['username'] + public.WriteLog('TYPE_LOGIN','LOGIN_SUCCESS',(userInfo['username'],public.GetClientIp())) + self.limit_address('-') + cache.delete('panelNum') + cache.delete('dologin') + sess_input_path = 'data/session_last.pl' + public.writeFile(sess_input_path,str(int(time.time()))) + self.set_request_token() + self.login_token() + return public.returnJson(True,'LOGIN_SUCCESS'),json_header + except Exception as ex: + stringEx = str(ex) + if stringEx.find('unsupported') != -1 or stringEx.find('-1') != -1: + os.system("rm -f /tmp/sess_*") + os.system("rm -f /www/wwwlogs/*log") + public.ServiceReload() + return public.returnJson(False,'USER_INODE_ERR'),json_header + public.WriteLog('TYPE_LOGIN','LOGIN_ERR_PASS',('****','******',public.GetClientIp())) + num = self.limit_address('+'); + return public.returnJson(False,'LOGIN_USER_ERR',(str(num),)),json_header + + # 检查是否需要进行二次验证 + def check_two_step_auth(self): + dont_vcode_ip_info = public.readFile("/www/server/panel/data/dont_vcode_ip.txt") + acc_client_ip = False + if dont_vcode_ip_info: + dont_vcode_ip_info = json.loads(dont_vcode_ip_info) + ip = dont_vcode_ip_info["client_ip"] == public.GetClientIp() + now = int(time.time()) + v_time = now - int(dont_vcode_ip_info["add_time"]) + if ip and v_time < 86400: + acc_client_ip = True + return acc_client_ip \ No newline at end of file diff --git a/runconfig.py b/runconfig.py index f5884584..b7d867a3 100644 --- a/runconfig.py +++ b/runconfig.py @@ -1,7 +1,7 @@ -import os,time,sys,ssl -sys.path.insert(0,'/www/server/panel/class') -import public -bt_port = public.readFile('data/port.pl') +import os +f = open('data/port.pl','r') +bt_port = f.read() +f.close() if bt_port: bt_port.strip() bind = [] if os.path.exists('data/ipv6.pl'): @@ -10,9 +10,11 @@ bind.append('0.0.0.0:%s' % bt_port) w_num = 'data/workers.pl' -if not os.path.exists(w_num): public.writeFile(w_num,'1') -workers = int(public.readFile(w_num)) -if not workers: workers = 1 +workers = 1 +if os.path.exists(w_num): + f = open(w_num,'r') + workers = int(f.read().strip()) + f.close() threads = 3 backlog = 512 daemon = True diff --git a/test.py b/test.py new file mode 100644 index 00000000..8c95e7a6 --- /dev/null +++ b/test.py @@ -0,0 +1,57 @@ +#coding: utf-8 +def extract_zone(domain_name): + domain_name = domain_name.lstrip("*.") + + #处理地区域名 + top_domain_list = ['.ac.cn', '.ah.cn', '.bj.cn', '.com.cn', '.cq.cn', '.fj.cn', '.gd.cn', + '.gov.cn', '.gs.cn', '.gx.cn', '.gz.cn', '.ha.cn', '.hb.cn', '.he.cn', + '.hi.cn', '.hk.cn', '.hl.cn', '.hn.cn', '.jl.cn', '.js.cn', '.jx.cn', + '.ln.cn', '.mo.cn', '.net.cn', '.nm.cn', '.nx.cn', '.org.cn'] + old_domain_name = domain_name + m_count = domain_name.count(".") + top_domain = "."+".".join(domain_name.rsplit('.')[-2:]) + new_top_domain = "." + top_domain.replace(".","") + is_tow_top = False + if top_domain in top_domain_list: + is_tow_top = True + domain_name = domain_name[:-len(top_domain)] + new_top_domain #地区域名后缀去点处理 + + if domain_name.count(".") > 1: + zone, middle, last = domain_name.rsplit(".", 2) + acme_txt = "_acme-challenge.%s" % zone + if is_tow_top: last = top_domain[1:] #还原地区域名 + root = ".".join([middle, last]) + else: + zone = "" + root = old_domain_name + acme_txt = "_acme-challenge" + return root, zone, acme_txt + +def test(domain_name): + domain_name = domain_name.lstrip("*.") + subd = "" + if domain_name.count(".") != 1: # not top level domain + pos = domain_name.rfind(".", 0, domain_name.rfind(".")) + subd = domain_name[:pos] + domain_name = domain_name[pos + 1 :] + if subd != "": + subd = "." + subd + return subd + + +#获取根域名 +def get_root_domain(domain_name): + if domain_name.count(".") != 1: + pos = domain_name.rfind(".", 0, domain_name.rfind(".")) + subd = domain_name[:pos] + domain_name = domain_name[pos + 1 :] + return domain_name + +#获取acmename +def get_acme_name(domain_name): + d_root,tow_name,acme_txt = extract_zone(domain_name) + return acme_txt + '.' + d_root + +domain = "*.archenet.com.cn" +print(extract_zone(domain)) +print(get_acme_name(domain)) \ No newline at end of file diff --git a/tools.py b/tools.py index 1342d38e..2359f08c 100644 --- a/tools.py +++ b/tools.py @@ -124,7 +124,6 @@ def PackagePanel(): os.system('rm -f /www/server/panel/data/domain.conf') os.system('rm -f /www/server/panel/data/user*') os.system('rm -f /www/server/panel/data/admin_path.pl') - os.system("rm -f /www/server/panel/data/licenes.pl") os.system('rm -f /root/.ssh/*') print('\t\033[1;32m[done]\033[0m') @@ -412,14 +411,15 @@ def bt_cli(u_input = 0): print("(7) 强制修改MySQL密码 (14) 查看面板默认信息") print("(22) 显示面板错误日志 (15) 清理系统垃圾") print("(23) 关闭BasicAuth认证 (16) 修复面板(检查错误并更新面板文件到最新版)") - print("(0) 取消 (17) 设置日志切割是否压缩") + print("(24) 关闭谷歌认证 (17) 设置日志切割是否压缩") + print("(0) 取消") print(raw_tip) try: u_input = input("请输入命令编号:") if sys.version_info[0] == 3: u_input = int(u_input) except: u_input = 0 - nums = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,22,23] + nums = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,22,23,24] if not u_input in nums: print(raw_tip) print("已取消!") @@ -546,6 +546,10 @@ def bt_cli(u_input = 0): if os.path.exists(filename): os.remove(filename) os.system('bt reload') print("|-已关闭BasicAuth认证") + elif u_input == 24: + filename = '/www/server/panel/data/two_step_auth.txt' + if os.path.exists(filename): os.remove(filename) + print("|-已关闭谷歌认证")