
teler-waf — это HTTP-промежуточное программное обеспечение на Go, которое защищает локальные веб-сервисы от угроз OWASP Top 10, известных уязвимостей, злоумышленников, ботнетов, нежелательных краулеров и брутфорс-атак.
teler-waf — это комплексное решение для безопасности веб-приложений на Go. Он действует как HTTP-промежуточное ПО, предоставляя простой интерфейс для интеграции функциональности IDS с teler IDS в существующие приложения на Go. Используя teler-waf, вы можете защититься от различных веб-атак, таких как межсайтовый скриптинг (XSS) и SQL-инъекции.
Пакет поставляется со стандартным net/http.Handler, что упрощает интеграцию в маршрутизацию вашего приложения. Когда клиент отправляет запрос к маршруту, защищённому teler-waf, запрос сначала проверяется с помощью teler IDS на наличие известных вредоносных шаблонов. Если вредоносных шаблонов не обнаружено, запрос передаётся для дальнейшей обработки.
Помимо защиты от веб-атак, teler-waf также может помочь повысить общую безопасность и целостность вашего приложения. Он легко настраивается, что позволяет адаптировать его под конкретные нужды вашего приложения.
См. также:
teler-waf предлагает ряд мощных функций, предназначенных для повышения безопасности ваших веб-приложений на Go:
В целом, teler-waf предоставляет комплексное решение безопасности для веб-приложений на Go, помогая защититься от веб-атак и повышая общую безопасность и целостность вашего приложения.
Зависимости:
Чтобы установить teler-waf в ваше приложение на Go, выполните следующую команду для загрузки и установки пакета teler-waf:```console go get github.com/teler-sh/teler-waf
## Использование
> [!WARNING]
> **Уведомление о прекращении поддержки**: Исключения угроз (`Excludes`) будут удалены в предстоящем релизе (**v2**). См. [#73](https://github.com/teler-sh/teler-waf/discussions/73) и [#64](https://github.com/teler-sh/teler-waf/issues/64).
Вот пример использования teler-waf в приложении на Go:
1. Импортируйте пакет teler-waf в свой код на Go:```go
import "github.com/teler-sh/teler-waf"
New для создания нового экземпляра типа Teler. Эта функция принимает разнообразные необязательные параметры, которые могут быть использованы для настройки teler-waf в соответствии с конкретными потребностями вашего приложения.```go
waf := teler.New()3. Используйте метод `Handler` экземпляра `Teler` для создания `net/http.Handler`. Этот обработчик затем может использоваться в HTTP-маршрутизации вашего приложения для применения мер безопасности teler-waf к определённым маршрутам.```go
handler := waf.Handler(http.HandlerFunc(yourHandlerFunc))
handler в маршрутизации HTTP вашего приложения для применения мер безопасности teler-waf к определённым маршрутам.```go
http.Handle("/path", handler)Вот и всё! Вы настроили teler-waf в вашем приложении Go.
**Параметры:**
Для списка параметров, доступных для настройки teler-waf, смотрите структуру [`teler.Options`](https://pkg.go.dev/github.com/teler-sh/teler-waf#Options).
### Примеры
Вот пример того, как настроить параметры и правила для teler-waf:```go
// main.go
package main
import (
"net/http"
"github.com/teler-sh/teler-waf"
"github.com/teler-sh/teler-waf/request"
"github.com/teler-sh/teler-waf/threat"
)
var myHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// This is the handler function for the route that we want to protect
// with teler-waf's security measures.
w.Write([]byte("hello world"))
})
var rejectHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// This is the handler function for the route that we want to be rejected
// if the teler-waf's security measures are triggered.
http.Error(w, "Sorry, your request has been denied for security reasons.", http.StatusForbidden)
})