Documentation
¶
Overview ¶
Package security provides functionality for the TDTP framework.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetCurrentUser ¶
func GetCurrentUser() string
GetCurrentUser возвращает имя текущего пользователя. Использует os/user.Current() — читает реальный UID процесса, не env-переменную. Env-переменная USER/USERNAME тривиально подменяется, что позволяло спуфить аудит.
func IsAdmin ¶
func IsAdmin() bool
IsAdmin проверяет, запущена ли программа с административными правами.
Для Unix/Linux систем проверяет effective UID (euid == 0 означает root). Для Windows пытается открыть защищенный системный ресурс.
Возвращает:
- true если программа запущена от root/Administrator
- false в противном случае
Types ¶
type SQLValidator ¶
type SQLValidator struct {
// contains filtered or unexported fields
}
SQLValidator проверяет SQL запросы на соответствие политикам безопасности.
В safe mode (по умолчанию) разрешены только SELECT и WITH запросы, блокируются все изменяющие операции (INSERT, UPDATE, DELETE, DROP, etc).
В unsafe mode (только для администраторов) все запросы разрешены.
func NewSQLValidator ¶
func NewSQLValidator(safeMode bool) *SQLValidator
NewSQLValidator создает новый SQL валидатор.
Параметры:
- safeMode: true для безопасного режима (только READ-ONLY запросы), false для unsafe режима (все запросы разрешены)
func (*SQLValidator) IsSafeMode ¶
func (v *SQLValidator) IsSafeMode() bool
IsSafeMode возвращает текущий режим валидатора
func (*SQLValidator) SetSafeMode ¶
func (v *SQLValidator) SetSafeMode(safeMode bool)
SetSafeMode устанавливает режим валидатора
func (*SQLValidator) Validate ¶
func (v *SQLValidator) Validate(sql string) error
Validate проверяет SQL запрос на соответствие политикам безопасности.
В safe mode проверяет:
- Запрос начинается с SELECT или WITH
- Отсутствуют запрещенные ключевые слова (DROP, DELETE, UPDATE, etc)
- Нет множественных команд (через ;)
- Нет SQL комментариев (могут скрывать вредоносный код)
В unsafe mode все запросы проходят без проверки.
Возвращает error если запрос не соответствует политикам безопасности.