增强安全性

This commit is contained in:
GoEdgeLab
2020-11-10 12:47:24 +08:00
parent 8e664f33db
commit 26066daad7
118 changed files with 164 additions and 133 deletions

2
go.mod
View File

@@ -8,7 +8,7 @@ require (
github.com/TeaOSLab/EdgeCommon v0.0.0-00010101000000-000000000000
github.com/go-sql-driver/mysql v1.5.0
github.com/go-yaml/yaml v2.1.0+incompatible
github.com/iwind/TeaGo v0.0.0-20201020081413-7cf62d6f420f
github.com/iwind/TeaGo v0.0.0-20201110043415-859f4b3b98f3
golang.org/x/sys v0.0.0-20200724161237-0e2f3a69832c // indirect
google.golang.org/grpc v1.32.0
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776

8
go.sum
View File

@@ -48,10 +48,10 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/iwind/TeaGo v0.0.0-20200923021120-f5d76441fe9e h1:/xn7wUvlwaoA5IkdBUctv2OQbJSZ0/Dw8qRJmn55sJk=
github.com/iwind/TeaGo v0.0.0-20200923021120-f5d76441fe9e/go.mod h1:KU4mS7QNiZ7QWEuDBk1zw0/Q2LrAPZv3tycEFBsuUwc=
github.com/iwind/TeaGo v0.0.0-20201010005321-430e836dee8a h1:sO6uDbQOEe6/tIB3o31vn6eD/JmkKGErKgcOA/Cpb+Q=
github.com/iwind/TeaGo v0.0.0-20201010005321-430e836dee8a/go.mod h1:KU4mS7QNiZ7QWEuDBk1zw0/Q2LrAPZv3tycEFBsuUwc=
github.com/iwind/TeaGo v0.0.0-20201020081413-7cf62d6f420f h1:6Ws2H+eorfVUoMO2jta6A9nIdh8oi5/5LXo/LkAxR+E=
github.com/iwind/TeaGo v0.0.0-20201020081413-7cf62d6f420f/go.mod h1:KU4mS7QNiZ7QWEuDBk1zw0/Q2LrAPZv3tycEFBsuUwc=
github.com/iwind/TeaGo v0.0.0-20201110022333-4505cfeba483 h1:iQlMhGYBNrvbyp90f4W+/nHnCLIvaiVSQQKDyaaGtek=
github.com/iwind/TeaGo v0.0.0-20201110022333-4505cfeba483/go.mod h1:KU4mS7QNiZ7QWEuDBk1zw0/Q2LrAPZv3tycEFBsuUwc=
github.com/iwind/TeaGo v0.0.0-20201110043415-859f4b3b98f3 h1:fJ32s0nZmhH780KYG9oWi11chljyaZ4JLRTvKV8nzb0=
github.com/iwind/TeaGo v0.0.0-20201110043415-859f4b3b98f3/go.mod h1:KU4mS7QNiZ7QWEuDBk1zw0/Q2LrAPZv3tycEFBsuUwc=
github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68=
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=

View File

@@ -13,4 +13,6 @@ const (
EncryptMethod = "aes-256-cfb"
ErrServer = "服务器出了点小问题,请联系技术人员处理。"
EnabledFrame = false // 是否允许被嵌入到别的网站中 TODO 做成可配置
)

View File

@@ -13,6 +13,7 @@ import (
"os/exec"
"os/signal"
"syscall"
"time"
)
type AdminNode struct {
@@ -52,12 +53,13 @@ func (this *AdminNode) Run() {
// 启动API节点
this.startAPINode()
server := TeaGo.NewServer(false).
TeaGo.NewServer(false).
AccessLog(false).
EndAll().
Session(sessions.NewFileSessionManager(86400, secret))
server.Start()
Session(sessions.NewFileSessionManager(86400, secret)).
ReadHeaderTimeout(3 * time.Second).
ReadTimeout(600 * time.Second).
Start()
}
// 检查Server配置

View File

@@ -2,6 +2,7 @@ package ui
import (
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
"github.com/TeaOSLab/EdgeAdmin/internal/web/helpers"
)
// 下载指定的文本内容
@@ -16,8 +17,9 @@ func (this *DownloadAction) Init() {
func (this *DownloadAction) RunGet(params struct {
File string
Text string
Auth *helpers.UserMustAuth
}) {
this.AddHeader("Content-Disposition", "attachment; filename=\""+params.File+"\";")
this.WriteString(params.Text)
}

View File

@@ -24,6 +24,12 @@ func NewUserMustAuth() *UserMustAuth {
func (this *UserMustAuth) BeforeAction(actionPtr actions.ActionWrapper, paramName string) (goNext bool) {
var action = actionPtr.Object()
// 安全相关
if !teaconst.EnabledFrame {
action.AddHeader("X-Frame-Options", "SAMEORIGIN")
}
action.AddHeader("Content-Security-Policy", "default-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'")
// 检查系统是否已经配置过
if !setup.IsConfigured() {
action.RedirectURL("/setup")

View File

@@ -1,6 +1,7 @@
package helpers
import (
teaconst "github.com/TeaOSLab/EdgeAdmin/internal/const"
"github.com/iwind/TeaGo/actions"
"net/http"
"strconv"
@@ -12,6 +13,14 @@ type UserShouldAuth struct {
func (this *UserShouldAuth) BeforeAction(actionPtr actions.ActionWrapper, paramName string) (goNext bool) {
this.action = actionPtr.Object()
// 安全相关
action := this.action
if !teaconst.EnabledFrame {
action.AddHeader("X-Frame-Options", "SAMEORIGIN")
}
action.AddHeader("Content-Security-Policy", "default-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'")
return true
}
@@ -20,18 +29,28 @@ func (this *UserShouldAuth) StoreAdmin(adminId int, remember bool) {
// 修改sid的时间
if remember {
cookie := &http.Cookie{
Name: "sid",
Value: this.action.Session().Sid,
Path: "/",
MaxAge: 14 * 86400,
Name: "sid",
Value: this.action.Session().Sid,
Path: "/",
MaxAge: 14 * 86400,
HttpOnly: true,
}
if this.action.Request.TLS != nil {
cookie.SameSite = http.SameSiteStrictMode
cookie.Secure = true
}
this.action.AddCookie(cookie)
} else {
cookie := &http.Cookie{
Name: "sid",
Value: this.action.Session().Sid,
Path: "/",
MaxAge: 0,
Name: "sid",
Value: this.action.Session().Sid,
Path: "/",
MaxAge: 0,
HttpOnly: true,
}
if this.action.Request.TLS != nil {
cookie.SameSite = http.SameSiteStrictMode
cookie.Secure = true
}
this.action.AddCookie(cookie)
}

View File

@@ -20,7 +20,7 @@ Vue.component("download-link", {
composeURL: function () {
let e = document.getElementById(this.vElement)
if (e == null) {
teaweb.warn("<download-link>找不到要下载的内容")
teaweb.warn("找不到要下载的内容")
return
}
let text = e.innerText

View File

@@ -1,7 +1,7 @@
{$layout "layout_popup"}
<h3>添加访问地址</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form class="ui form" method="post" data-tea-action="$" data-tea-success="success">
<table class="ui table definition selectable">
<tr>
<td>网络协议</td>

View File

@@ -1,7 +1,7 @@
{$layout "layout_popup"}
<h3>添加API节点</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form class="ui form" method="post" data-tea-action="$" data-tea-success="success">
<table class="ui table selectable definition">
<tr>
<td class="title">节点名称 *</td>

View File

@@ -2,7 +2,7 @@
{$template "menu"}
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="nodeId" :value="node.id"/>
<input type="hidden" name="sslPolicyId" :value="node.sslPolicyId"/>
<table class="ui table selectable definition">

View File

@@ -1,7 +1,7 @@
{$layout "layout_popup"}
<h3>修改访问地址</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<table class="ui table definition selectable">
<tr>
<td>网络协议</td>

View File

@@ -3,7 +3,7 @@
{$template "/left_menu"}
<div class="right-box">
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<csrf-token></csrf-token>
<input type="hidden" name="clusterId" :value="clusterId"/>
<table class="ui table definition selectable">

View File

@@ -3,7 +3,7 @@
{$template "/left_menu"}
<div class="right-box">
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="clusterId" :value="clusterId"/>
<table class="ui table definition selectable">
<tr>

View File

@@ -1,7 +1,7 @@
{$layout "layout_popup"}
<h3>创建分组</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="clusterId" :value="clusterId"/>
<table class="ui table definition selectable">
<tr>

View File

@@ -2,7 +2,7 @@
<h3>选择分组</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="groupId" :value="groupId"/>
<table class="ui table definition selectable">
<tr>

View File

@@ -1,7 +1,7 @@
{$layout "layout_popup"}
<h3>修改分组</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="groupId" :value="group.id"/>
<table class="ui table definition selectable">
<tr>

View File

@@ -2,7 +2,7 @@
{$template "menu"}
<form class="ui form" action="/clusters/cluster">
<form method="post" class="ui form" action="/clusters/cluster">
<input type="hidden" name="clusterId" :value="clusterId"/>
<div class="ui fields inline">
<div class="ui field" v-if="groups.length > 0" style="padding-right: 0">

View File

@@ -3,7 +3,7 @@
{$template "node_menu"}
<h3>修改节点</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="nodeId" :value="node.id"/>
<input type="hidden" name="loginId" :value="loginId"/>
<table class="ui table definition selectable">

View File

@@ -2,7 +2,7 @@
{$template "/left_menu"}
<div class="right-box">
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="clusterId" :value="clusterId"/>
<health-check-config-box :v-health-check-config="healthCheckConfig"></health-check-config-box>
<submit-btn></submit-btn> &nbsp; <a href="" @click.prevent="run()" v-if="healthCheckConfig != null && healthCheckConfig.isOn">立即检查</a>

View File

@@ -4,7 +4,7 @@
<span class="red" v-if="isRequesting">正在执行中,请等待执行完毕...</span>
<form class="ui form" v-if="!isRequesting">
<form method="post" class="ui form" v-if="!isRequesting">
<p>成功节点:<span class="green">{{countSuccess}}</span> &nbsp; 失败节点:<span class="red">{{countFail}}</span></p>
<table class="ui table selectable">
<thead>

View File

@@ -3,7 +3,7 @@
<div class="right-box">
<h3>基础设置</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="clusterId" :value="cluster.id"/>
<table class="ui table selectable definition">
<tr>

View File

@@ -2,7 +2,7 @@
<h3>修改节点"{{node.name}}"的SSH登录信息</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="nodeId" :value="node.id"/>
<input type="hidden" name="loginId" :value="loginId"/>
<table class="ui table definition">

View File

@@ -3,7 +3,7 @@
<div class="margin"></div>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<table class="ui table selectable definition">
<tr>
<td class="title">集群名称 *</td>

View File

@@ -2,7 +2,7 @@
{$template "menu"}
<div class="margin"></div>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<table class="ui table selectable definition">
<tr>
<td>名称 *</td>

View File

@@ -1,7 +1,7 @@
{$layout "layout_popup"}
<h3>添加新认证</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<table class="ui table selectable definition">
<tr>
<td>名称 *</td>

View File

@@ -2,7 +2,7 @@
<h3>选择认证</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="grantId" :value="grantId"/>
<table class="ui table selectable definition">
<tr>

View File

@@ -2,7 +2,7 @@
{$template "grant_menu"}
<div class="margin"></div>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="grantId" :value="grant.id"/>
<table class="ui table selectable definition">
<tr>

View File

@@ -1,7 +1,7 @@
{$layout "layout_popup"}
<h3>修改认证</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="grantId" :value="grant.id"/>
<input type="hidden" name="nodeId" :value="grant.nodeId"/>
<table class="ui table selectable definition">

View File

@@ -2,7 +2,7 @@
<h3>添加节点</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<table class="ui table definition selectable">
<tr>
<td class="title">节点名称 *</td>

View File

@@ -2,7 +2,7 @@
<h3>修改节点</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="nodeId" :value="node.id"/>
<table class="ui table definition selectable">
<tr>

View File

@@ -17,7 +17,7 @@
{$template "/menu"}
<div class="form-box">
<form class="ui form" data-tea-action="$" data-tea-before="submitBefore" data-tea-done="submitDone" data-tea-success="submitSuccess" autocomplete="off">
<form method="post" class="ui form" data-tea-action="$" data-tea-before="submitBefore" data-tea-done="submitDone" data-tea-success="submitSuccess" autocomplete="off">
<csrf-token></csrf-token>
<input type="hidden" name="password" v-model="passwordMd5"/>
<input type="hidden" name="token" v-model="token"/>

View File

@@ -2,7 +2,7 @@
<h3>添加IP地址</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<table class="ui table definition selectable">
<tr>
<td>IP地址 *</td>

View File

@@ -2,7 +2,7 @@
<h3>修改IP地址</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="addressId" :value="address.id"/>
<table class="ui table definition selectable">
<tr>

View File

@@ -2,7 +2,7 @@
<h3>添加源站地址</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<table class="ui table selectable definition">
<tr>
<td>源站协议</td>

View File

@@ -2,7 +2,7 @@
<h3 v-if="!isUpdating">添加端口绑定</h3>
<h3 v-if="isUpdating">修改端口绑定</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<table class="ui table definition selectable">
<tr>
<td>网络协议</td>

View File

@@ -2,7 +2,7 @@
<h3 v-if="!isUpdating">添加域名绑定</h3>
<h3 v-if="isUpdating">修改域名绑定</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="mode" :value="mode"/>
<table class="ui table selectable definition">
<tr v-if="mode == 'single'">

View File

@@ -13,7 +13,7 @@
<h3>清理</h3>
<p class=""><span class="red">严重注意:该操作将清理集群所有节点上的所有对应缓存。</span></p>
<form data-tea-action="$" data-tea-before="before" data-tea-success="success" data-tea-fail="fail" data-tea-done="done">
<form method="post" data-tea-action="$" data-tea-before="before" data-tea-success="success" data-tea-fail="fail" data-tea-done="done">
<input type="hidden" name="cachePolicyId" :value="cachePolicyId"/>
<input type="hidden" name="clusterId" :value="clusterId"/>
<table class="ui table definition selectable">

View File

@@ -2,7 +2,7 @@
<h3>创建缓存策略</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<table class="ui table definition selectable">
<tr>
<td class="title">策略名称 *</td>

View File

@@ -10,7 +10,7 @@
</select>
<div class="ui divider"></div>
<form class="ui form" data-tea-action="$" data-tea-before="before" data-tea-success="success" data-tea-fail="fail" data-tea-done="done" data-tea-timeout="3600">
<form method="post" class="ui form" data-tea-action="$" data-tea-before="before" data-tea-success="success" data-tea-fail="fail" data-tea-done="done" data-tea-timeout="3600">
<input type="hidden" name="cachePolicyId" :value="cachePolicyId"/>
<input type="hidden" name="clusterId" :value="clusterId"/>
<table class="ui table definition selectable">

View File

@@ -12,7 +12,7 @@
<h3>批量删除</h3>
<p class="comment">可以批量删除一组Key。</p>
<form class="ui form" data-tea-action="$" data-tea-before="before" data-tea-success="success" data-tea-fail="fail" data-tea-done="done">
<form method="post" class="ui form" data-tea-action="$" data-tea-before="before" data-tea-success="success" data-tea-fail="fail" data-tea-done="done">
<input type="hidden" name="cachePolicyId" :value="cachePolicyId"/>
<input type="hidden" name="clusterId" :value="clusterId"/>
<table class="ui table definition selectable">

View File

@@ -12,7 +12,7 @@
<div class="ui divider"></div>
<h3>统计</h3>
<form data-tea-action="$" data-tea-before="before" data-tea-success="success" data-tea-fail="fail" data-tea-done="done">
<form method="post" data-tea-action="$" data-tea-before="before" data-tea-success="success" data-tea-fail="fail" data-tea-done="done">
<input type="hidden" name="cachePolicyId" :value="cachePolicyId"/>
<input type="hidden" name="clusterId" :value="clusterId"/>

View File

@@ -12,7 +12,7 @@
<div class="ui divider"></div>
<h3>测试写入</h3>
<form class="ui form" data-tea-action=".testWrite" data-tea-before="beforeWrite" data-tea-done="doneWrite" data-tea-success="successWrite" data-tea-fail="failWrite">
<form method="post" class="ui form" data-tea-action=".testWrite" data-tea-before="beforeWrite" data-tea-done="doneWrite" data-tea-success="successWrite" data-tea-fail="failWrite">
<input type="hidden" name="clusterId" :value="clusterId"/>
<input type="hidden" name="cachePolicyId" :value="cachePolicyId"/>
<table class="ui table selectable definition">
@@ -46,7 +46,7 @@
<div class="ui divider"></div>
<h3>测试读取</h3>
<form class="ui form" data-tea-action=".testRead" data-tea-before="beforeRead" data-tea-done="doneRead" data-tea-success="successRead" data-tea-fail="failRead">
<form method="post" class="ui form" data-tea-action=".testRead" data-tea-before="beforeRead" data-tea-done="doneRead" data-tea-success="successRead" data-tea-fail="failRead">
<input type="hidden" name="clusterId" :value="clusterId"/>
<input type="hidden" name="cachePolicyId" :value="cachePolicyId"/>
<table class="ui table selectable definition">

View File

@@ -4,7 +4,7 @@
<div class="right-box">
{$template "policy_menu"}
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="cachePolicyId" :value="cachePolicy.id"/>
<table class="ui table definition selectable">
<tr>

View File

@@ -1,7 +1,7 @@
{$layout "layout_popup"}
<h3>创建分组</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<table class="ui table definition selectable">
<tr>
<td class="title">分组名称 *</td>

View File

@@ -2,7 +2,7 @@
<h3>选择分组</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="groupId" :value="groupId"/>
<table class="ui table definition selectable">
<tr>

View File

@@ -1,7 +1,7 @@
{$layout "layout_popup"}
<h3>修改分组</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="groupId" :value="group.id"/>
<table class="ui table definition selectable">
<tr>

View File

@@ -2,7 +2,7 @@
{$template "/left_menu"}
<div class="right-box">
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="globalConfigJSON" :value="JSON.stringify(globalConfig)"/>
<table class="ui table selectable definition">
<tr>

View File

@@ -2,7 +2,7 @@
<h3>上传IP库</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success" data-tea-timeout="120" data-tea-before="before" data-tea-done="done">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success" data-tea-timeout="120" data-tea-before="before" data-tea-done="done">
<table class="ui table definition selectable">
<tr>
<td>IP库类型 *</td>

View File

@@ -2,7 +2,7 @@
<h3>修改证书</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="certId" :value="certConfig.id"/>
<table class="ui table definition selectable">
<tr>

View File

@@ -2,7 +2,7 @@
<h3>上传证书</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<table class="ui table definition selectable">
<tr>
<td class="title">证书说明 *</td>

View File

@@ -2,7 +2,7 @@
<h3>添加分组</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="firewallPolicyId" :value="firewallPolicyId"/>
<input type="hidden" name="type" :value="type"/>
<table class="ui table definition selectable">

View File

@@ -1,6 +1,6 @@
{$layout "layout_popup"}
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<table class="ui table definition selectable">
<tr>
<td class="title">策略名称 *</td>

View File

@@ -3,7 +3,7 @@
<h3 v-if="!isUpdating">添加规则</h3>
<h3 v-if="isUpdating">修改规则</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="ruleId" :value="rule.id"/>
<input type="hidden" name="optionsJSON" v-if="checkpoint != null && checkpoint.options != null" :value="JSON.stringify(checkpoint.options)"/>
<table class="ui table definition selectable">

View File

@@ -2,7 +2,7 @@
<h3>添加规则集</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="groupId" :value="groupId"/>
<table class="ui table definition selectable">
<tr>

View File

@@ -3,7 +3,7 @@
<h3 v-if="type == 'white'">添加IP到白名单</h3>
<h3 v-if="type == 'black'">添加IP到黑名单</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="firewallPolicyId" :value="firewallPolicyId"/>
<input type="hidden" name="listId" :value="listId"/>
<csrf-token></csrf-token>

View File

@@ -5,7 +5,7 @@
{$template "../waf_menu"}
{$template "menu"}
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="firewallPolicyId" :value="firewallPolicyId"/>
<table class="ui table selectable definition">
<tr>

View File

@@ -5,7 +5,7 @@
{$template "../waf_menu"}
{$template "menu"}
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="firewallPolicyId" :value="firewallPolicyId"/>
<table class="ui table selectable definition">
<tr>

View File

@@ -2,7 +2,7 @@
<h3>修改IP</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="firewallPolicyId" :value="firewallPolicyId"/>
<input type="hidden" name="itemId" :value="item.id"/>
<csrf-token></csrf-token>

View File

@@ -14,7 +14,7 @@
<div class="right-box">
{$template "waf_menu"}
<form class="ui form small" :action="path" autocomplete="off">
<form method="get" class="ui form small" :action="path" autocomplete="off">
<first-menu style="margin-top: -1em">
<div class="item">
<select class="ui dropdown" name="groupId" v-model="groupId">

View File

@@ -4,7 +4,7 @@
<div class="right-box">
{$template "waf_menu"}
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="firewallPolicyId" :value="firewallPolicyId"/>
<table class="ui table definition selectable">
<tr>

View File

@@ -2,7 +2,7 @@
<h3>修改分组</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="groupId" :value="group.id"/>
<table class="ui table definition selectable">
<tr>

View File

@@ -2,7 +2,7 @@
<h3>修改规则集</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="setId" :value="setConfig.id"/>
<table class="ui table definition selectable">
<tr>

View File

@@ -3,7 +3,7 @@
<div class="margin"></div>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<table class="ui table selectable definition">
<tr>
<td class="title">服务名称 *</td>

View File

@@ -1,7 +1,7 @@
{$layout}
{$template "menu"}
<form class="ui form" action="/servers">
<form method="get" class="ui form" action="/servers">
<div class="ui margin"></div>
<div class="ui fields inline">
<div class="ui field" v-if="groups.length > 0" style="padding-right:0">

View File

@@ -16,7 +16,7 @@
<menu-item :href="path + '?serverId=' + serverId + '&day=' + day" :active="hasError == 0">所有日志</menu-item>
<menu-item :href="path + '?serverId=' + serverId + '&day=' + day + '&hasError=1'" :active="hasError > 0">错误日志</menu-item>
<div class="item right">
<form class="ui form small" :action="path" autocomplete="off">
<form method="get" class="ui form small" :action="path" autocomplete="off">
<input type="hidden" name="serverId" :value="serverId"/>
<div class="ui fields inline">
<div class="ui field">

View File

@@ -3,7 +3,7 @@
{$template "/left_menu"}
<div class="right-box">
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="webId" :value="webId"/>
<http-access-log-config-box
:v-access-log-config="accessLogConfig"

View File

@@ -2,7 +2,7 @@
<h3>添加缓存设置</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<table class="ui table definition selectable">
<tr>
<td class="title">缓存策略 *</td>

View File

@@ -3,7 +3,7 @@
{$template "/left_menu"}
<div class="right-box">
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="webId" :value="webId"/>
<http-cache-config-box :v-cache-config="cacheConfig"></http-cache-config-box>
<submit-btn></submit-btn>

View File

@@ -3,7 +3,7 @@
{$template "/left_menu"}
<div class="right-box">
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="webId" :value="webId"/>
<http-charsets-box :v-usual-charsets="usualCharsets" :v-all-charsets="allCharsets" :v-charset-config="charsetConfig"></http-charsets-box>
<submit-btn></submit-btn>

View File

@@ -2,7 +2,7 @@
<h3 v-if="!isUpdating">添加子条件</h3>
<h3 v-if="isUpdating">修改子条件</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<table class="ui table definition selectable">
<tr>
<td class="title">选择条件类型</td>

View File

@@ -2,7 +2,7 @@
<h3>添加条件</h3>
<form class="ui form" data-tea-success="success" data-tea-action="$">
<form method="post" class="ui form" data-tea-success="success" data-tea-action="$">
<input type="hidden" name="condGroupJSON" :value="JSON.stringify(group)"/>
<table class="ui table definition selectable">
<tr>

View File

@@ -3,7 +3,7 @@
{$template "/left_menu"}
<div class="right-box">
<form class="ui form" data-tea-success="success" data-tea-action="$">
<form method="post" class="ui form" data-tea-success="success" data-tea-action="$">
<input type="hidden" name="webId" :value="webId"/>
<input type="hidden" name="gzipId" :value="gzipConfig.id"/>

View File

@@ -1,7 +1,7 @@
{$layout "layout_popup"}
<h3>添加需要删除的Header</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="headerPolicyId" :value="headerPolicyId"/>
<table class="ui table definition selectable">
<tr>

View File

@@ -1,7 +1,7 @@
{$layout "layout_popup"}
<h3>设置Header</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="serverId" :value="serverId"/>
<input type="hidden" name="headerPolicyId" :value="headerPolicyId"/>
<table class="ui table definition selectable">

View File

@@ -1,7 +1,7 @@
{$layout "layout_popup"}
<h3>修改Header</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="serverId" :value="serverId"/>
<input type="hidden" name="headerPolicyId" :value="headerPolicyId"/>
<input type="hidden" name="headerId" :value="headerId"/>

View File

@@ -3,7 +3,7 @@
{$template "/left_menu"}
<div class="right-box">
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="serverId" :value="serverId"/>
<input type="hidden" name="webId" :value="webId"/>
<input type="hidden" name="serverType" :value="serverType"/>

View File

@@ -8,7 +8,7 @@
<div class="right-box">
<p class="comment">提醒HTTP2、证书等信息修改后可能需要清空浏览器缓存后才能浏览效果。</p>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="serverId" :value="serverId"/>
<input type="hidden" name="serverType" :value="serverType"/>
<table class="ui table selectable definition">

View File

@@ -3,7 +3,7 @@
{$template "/left_menu"}
<div class="right-box">
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="serverId" :value="server.id"/>
<table class="ui table selectable definition">
<tr>

View File

@@ -7,7 +7,7 @@
{$template "../left_menu"}
<div class="right-box tiny">
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="webId" :value="webId"/>
<http-access-log-config-box
:v-access-log-config="accessLogConfig"

View File

@@ -7,7 +7,7 @@
{$template "../left_menu"}
<div class="right-box tiny">
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="webId" :value="webId"/>
<http-cache-config-box :v-cache-config="cacheConfig" :v-is-location="true"></http-cache-config-box>
<submit-btn></submit-btn>

View File

@@ -8,7 +8,7 @@
<div class="right-box tiny">
<div class="margin"></div>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="webId" :value="webId"/>
<http-charsets-box :v-usual-charsets="usualCharsets" :v-all-charsets="allCharsets" :v-charset-config="charsetConfig" :v-is-location="true"></http-charsets-box>
<submit-btn></submit-btn>

View File

@@ -4,7 +4,7 @@
<div class="right-box">
{$template "menu"}
<div class="margin"></div>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="webId" :value="webId"/>
<table class="ui table selectable definition">
<tr>

View File

@@ -8,7 +8,7 @@
<div class="right-box tiny">
<div class="margin"></div>
<form class="ui form" data-tea-success="success" data-tea-action="$">
<form method="post" class="ui form" data-tea-success="success" data-tea-action="$">
<input type="hidden" name="webId" :value="webId"/>
<input type="hidden" name="gzipId" :value="gzipConfig.id"/>

View File

@@ -7,7 +7,7 @@
{$template "../left_menu"}
<div class="right-box tiny">
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="webId" :value="webId"/>
<http-header-policy-box
:v-request-header-policy="requestHeaderPolicy"

View File

@@ -6,7 +6,7 @@
{$template "../left_menu"}
<div class="right-box tiny">
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="webId" :value="webId"/>
<http-redirect-to-https-box :v-redirect-to-https-config="redirectToHTTPSConfig" :v-is-location="true"></http-redirect-to-https-box>

View File

@@ -6,7 +6,7 @@
{$template "../left_menu"}
<div class="right-box tiny">
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="locationId" :value="locationConfig.id"/>
<table class="ui table selectable definition">
<tr>

View File

@@ -7,7 +7,7 @@
{$template "../left_menu"}
<div class="right-box tiny">
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="webId" :value="webId"/>
<http-pages-and-shutdown-box :v-pages="pages" :v-shutdown-config="shutdownConfig" :v-is-location="true"></http-pages-and-shutdown-box>
<submit-btn></submit-btn>

View File

@@ -8,7 +8,7 @@
<div class="right-box tiny">
{$template "menu"}
<div class="margin"></div>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="locationId" :value="locationId"/>
<input type="hidden" name="reverseProxyRefJSON" :value="JSON.stringify(reverseProxyRef)"/>
<reverse-proxy-box :v-reverse-proxy-ref="reverseProxyRef"

View File

@@ -2,7 +2,7 @@
<h3>修改调度算法</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="dataType" :value="dataType"/>
<input type="hidden" name="serverId" :value="serverId"/>
<input type="hidden" name="reverseProxyId" :value="reverseProxyId"/>

View File

@@ -6,7 +6,7 @@
{$template "../left_menu"}
<div class="right-box tiny">
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="webId" :value="webId"/>
<http-stat-config-box :v-stat-config="statConfig" :v-is-location="true"></http-stat-config-box>
<submit-btn></submit-btn>

View File

@@ -6,7 +6,7 @@
{$template "../left_menu"}
<div class="right-box tiny">
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="webId" :value="webId"/>
<http-firewall-config-box :v-firewall-config="firewallConfig" :v-firewall-policies="firewallPolicies" :v-is-location="true"></http-firewall-config-box>
<submit-btn></submit-btn>

View File

@@ -6,7 +6,7 @@
{$template "../left_menu"}
<div class="right-box tiny">
<form class="ui form" data-tea-success="success" data-tea-action="$">
<form method="post" class="ui form" data-tea-success="success" data-tea-action="$">
<input type="hidden" name="webId" :value="webId"/>
<http-web-root-box :v-root-config="rootConfig" :v-is-location="true"></http-web-root-box>
<submit-btn></submit-btn>

View File

@@ -6,7 +6,7 @@
{$template "../left_menu"}
<div class="right-box tiny">
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="webId" :value="webId"/>
<http-websocket-box :v-websocket-ref="websocketRef"
:v-websocket-config="websocketConfig"

View File

@@ -2,7 +2,7 @@
<h3>添加源站地址</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="reverseProxyId" :value="reverseProxyId"/>
<input type="hidden" name="originType" :value="originType"/>
<table class="ui table selectable definition">

View File

@@ -2,7 +2,7 @@
<h3>添加源站地址</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="reverseProxyId" :value="reverseProxyId"/>
<input type="hidden" name="originType" :value="originType"/>
<input type="hidden" name="originId" :value="originId"/>

View File

@@ -1,6 +1,6 @@
{$layout "layout_popup"}
<h3>添加特殊页面</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<table class="ui table selectable definition">
<tr>
<td class="title">响应状态码 *</td>

View File

@@ -3,7 +3,7 @@
{$template "/left_menu"}
<div class="right-box">
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="webId" :value="webId"/>
<http-pages-and-shutdown-box :v-pages="pages" :v-shutdown-config="shutdownConfig"></http-pages-and-shutdown-box>
<submit-btn></submit-btn>

View File

@@ -1,6 +1,6 @@
{$layout "layout_popup"}
<h3>修改特殊页面</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="pageId" :value="pageConfig.id"/>
<table class="ui table selectable definition">
<tr>

View File

@@ -5,7 +5,7 @@
{$template "menu"}
<div class="margin"></div>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="serverId" :value="serverId"/>
<input type="hidden" name="reverseProxyRefJSON" :value="JSON.stringify(reverseProxyRef)"/>
<reverse-proxy-box :v-reverse-proxy-ref="reverseProxyRef" :v-reverse-proxy-config="reverseProxyConfig"></reverse-proxy-box>

Some files were not shown because too many files have changed in this diff Show More