mirror of
https://github.com/Direct-Dev-Ru/go-lcg.git
synced 2025-11-16 01:29:55 +00:00
Исправления в ветке main
This commit is contained in:
@@ -127,7 +127,6 @@ func getTokenFromCookie(r *http.Request) (string, error) {
|
||||
func setAuthCookie(w http.ResponseWriter, token string) {
|
||||
cookie := &http.Cookie{
|
||||
Name: "auth_token",
|
||||
Domain: config.AppConfig.Server.Domain,
|
||||
Value: token,
|
||||
Path: config.AppConfig.Server.CookiePath,
|
||||
HttpOnly: true,
|
||||
@@ -136,9 +135,16 @@ func setAuthCookie(w http.ResponseWriter, token string) {
|
||||
MaxAge: config.AppConfig.Server.CookieTTLHours * 60 * 60,
|
||||
}
|
||||
|
||||
// Добавляем домен если указан
|
||||
// Устанавливаем Domain только если это не IP адрес и не 0.0.0.0
|
||||
// При доступе по IP адресу не устанавливаем Domain, иначе cookie не будет работать
|
||||
if config.AppConfig.Server.Domain != "" {
|
||||
cookie.Domain = config.AppConfig.Server.Domain
|
||||
domain := config.AppConfig.Server.Domain
|
||||
// Проверяем, не является ли домен IP адресом или 0.0.0.0
|
||||
if !isIPAddress(domain) && domain != "0.0.0.0" && domain != "::" && domain != "::1" {
|
||||
cookie.Domain = domain
|
||||
}
|
||||
// Если domain пустой, 0.0.0.0 или IP адрес - не устанавливаем Domain
|
||||
// Браузер автоматически применит cookie к текущему хосту
|
||||
}
|
||||
|
||||
http.SetCookie(w, cookie)
|
||||
@@ -156,9 +162,12 @@ func clearAuthCookie(w http.ResponseWriter) {
|
||||
MaxAge: -1, // Удаляем cookie
|
||||
}
|
||||
|
||||
// Добавляем домен если указан
|
||||
// Устанавливаем Domain только если это не IP адрес
|
||||
if config.AppConfig.Server.Domain != "" {
|
||||
cookie.Domain = config.AppConfig.Server.Domain
|
||||
domain := config.AppConfig.Server.Domain
|
||||
if !isIPAddress(domain) && domain != "0.0.0.0" && domain != "::" && domain != "::1" {
|
||||
cookie.Domain = domain
|
||||
}
|
||||
}
|
||||
|
||||
http.SetCookie(w, cookie)
|
||||
|
||||
@@ -8,6 +8,8 @@ import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/direct-dev-ru/linux-command-gpt/config"
|
||||
@@ -172,9 +174,16 @@ func setCSRFCookie(w http.ResponseWriter, token string) {
|
||||
MaxAge: CSRFTokenLifetimeSeconds, // Минимум 12 часов в секундах
|
||||
}
|
||||
|
||||
// Добавляем домен если указан
|
||||
// Устанавливаем Domain только если это не IP адрес и не 0.0.0.0
|
||||
// При доступе по IP адресу не устанавливаем Domain, иначе cookie не будет работать
|
||||
if config.AppConfig.Server.Domain != "" {
|
||||
cookie.Domain = config.AppConfig.Server.Domain
|
||||
domain := config.AppConfig.Server.Domain
|
||||
// Проверяем, не является ли домен IP адресом или 0.0.0.0
|
||||
if !isIPAddress(domain) && domain != "0.0.0.0" && domain != "::" && domain != "::1" {
|
||||
cookie.Domain = domain
|
||||
}
|
||||
// Если domain пустой, 0.0.0.0 или IP адрес - не устанавливаем Domain
|
||||
// Браузер автоматически применит cookie к текущему хосту
|
||||
}
|
||||
|
||||
http.SetCookie(w, cookie)
|
||||
@@ -192,9 +201,12 @@ func СlearCSRFCookie(w http.ResponseWriter) {
|
||||
MaxAge: -1,
|
||||
}
|
||||
|
||||
// Добавляем домен если указан
|
||||
// Устанавливаем Domain только если это не IP адрес
|
||||
if config.AppConfig.Server.Domain != "" {
|
||||
cookie.Domain = config.AppConfig.Server.Domain
|
||||
domain := config.AppConfig.Server.Domain
|
||||
if !isIPAddress(domain) && domain != "0.0.0.0" && domain != "::" && domain != "::1" {
|
||||
cookie.Domain = domain
|
||||
}
|
||||
}
|
||||
|
||||
http.SetCookie(w, cookie)
|
||||
@@ -270,3 +282,17 @@ func InitCSRFManager() error {
|
||||
func GetCSRFManager() *CSRFManager {
|
||||
return csrfManager
|
||||
}
|
||||
|
||||
// isIPAddress проверяет, является ли строка IPv4 адресом
|
||||
func isIPAddress(s string) bool {
|
||||
parts := strings.Split(s, ".")
|
||||
if len(parts) != 4 {
|
||||
return false
|
||||
}
|
||||
for _, part := range parts {
|
||||
if num, err := strconv.Atoi(part); err != nil || num < 0 || num > 255 {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
@@ -72,8 +72,9 @@ var ExecutePageCSSTemplate = template.Must(template.New("execute_css").Parse(`
|
||||
text-align: center;
|
||||
}
|
||||
.header h1 {
|
||||
margin: 0;
|
||||
font-size: 2.5em;
|
||||
margin-bottom: 10px;
|
||||
font-weight: 300;
|
||||
}
|
||||
.header p {
|
||||
opacity: 0.9;
|
||||
|
||||
Reference in New Issue
Block a user