Simple security middleware for FastAPI
Project description
Simple Security for FastAPI
Este projeto fornece um middleware de segurança de facíl condiguração para FastAPI, permitindo a detecção e mitigação de ataques de injeção (SQL, XSS, NoSQL) e a adição de cabeçalhos de segurança às respostas.
Instalação
Instale a biblioteca via pip:
pip install fastapi-SimpleSecurity
Configuração
Arquivo de Configuração
Edite o arquivo config.yaml
na pasta app/config/
para definir as regras de injeção, exclusões e limitação de taxa. Exemplo:
rules:
injection:
enabled: true
sql:
enabled: true
patterns:
- "(?i)\\b(select|insert|update|delete|drop|truncate|alter|exec|execute|declare|union|join)\\b|'--|--[\\s]*$|';[\\s]*$|\"\\s*;|/\\*.*\\*/|--[^-]*-|' OR ''='|' OR '1'='1|' OR 1=1|--|/\\*|\\*/|;|@@|char\\(|nchar\\(|varchar\\(|nvarchar\\(|alter\\(|begin\\(|cast\\(|create\\(|cursor\\(|declare\\(|delete\\(|drop\\(|end\\(|exec\\(|execute\\(|fetch\\(|insert\\(|kill\\(|open\\(|select\\(|sys\\(|sysobjects\\(|syscolumns\\(|table\\(|update\\("
- '(?i)(\\b(SELECT|INSERT|UPDATE|DELETE|DROP|TRUNCATE|ALTER|EXEC|EXECUTE|DECLARE|UNION|JOIN)\\b|--;|'';|-- |\\x27|\\x22)'
xss:
enabled: true
patterns:
- "<script[^>]*?>.*?</script>"
- "<iframe[^>]*?>.*?</iframe>"
- "<object[^>]*?>.*?</object>"
- "(?i)javascript:"
- "(?i)\\bon\\w+=.*"
- "(?i)<img[^>]+src[^>]+onerror=.*"
- "(?i)<a[^>]+href[^>]+javascript:.*"
- "(?i)\\bstyle=.*expression\\(.*"
- "(?i)\\bstyle=.*url\\(.*"
- "(?i)\\bstyle=.*import\\(.*"
- "(?i)\\b@import\\b"
nosql:
enabled: true
patterns:
- "\\{\\$ne\\}"
- "\\{\\$gt\\}"
- "\\{\\$lt\\}"
- "\\{\\$exists\\}"
- "\\{\\$regex\\}"
- "\\{\\$where\\}"
- "\\{\\$all\\}"
- "\\{\\$elemMatch\\}"
exclusions:
- "/excluded-route"
rate_limiting:
enabled: true
requests: 100
per_minute: 1
Inicialização do Middleware
Para usar o middleware de segurança em sua aplicação FastAPI, configure e adicione o middleware usando a classe WAFMiddleware
:
from fastapi import FastAPI
from simple_security.middleware import WAFMiddleware
app = FastAPI()
waf_middleware = WAFMiddleware(app, config_file_path="app/config/settings.yaml")
@app.get("/")
async def root():
return {"message": "Hello, World!"}
Funcionalidades
Filtros de Injeção
O middleware verifica padrões de injeção em solicitações para detectar e prevenir ataques de injeção SQL, XSS e NoSQL.
- SQL Injection: Detecta padrões comuns de injeção SQL.
- XSS (Cross-Site Scripting): Detecta scripts maliciosos embutidos em solicitações.
- NoSQL Injection: Detecta padrões de injeção NoSQL.
Cabeçalhos de Segurança
O middleware adiciona cabeçalhos de segurança às respostas para proteger contra várias ameaças.
X-Frame-Options
Cache-Control
Clear-Site-Data
Content-Security-Policy
Cross-Origin-Embedder-Policy
Cross-Origin-Opener-Policy
Cross-Origin-Resource-Policy
Referrer-Policy
Strict-Transport-Security
X-Content-Type-Options
X-DNS-Prefetch-Control
X-Download-Options
X-Permitted-Cross-Domain-Policies
X-XSS-Protection
Exclusões
Você pode especificar caminhos a serem excluídos das verificações de segurança no arquivo de configuração.
Limitação de Taxa
O middleware suporta limitação de taxa, permitindo definir o número de solicitações permitidas por minuto.
Licença
Distribuído sob a licença MIT. Veja LICENSE
para mais informações.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file fastapi_security_middleware-0.1.3.tar.gz
.
File metadata
- Download URL: fastapi_security_middleware-0.1.3.tar.gz
- Upload date:
- Size: 15.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5aebf5acf795c8cab0a706138624497b40bc7f6d3231c9e6f58714475de89601 |
|
MD5 | 2dbb16bc7fe9fed519ab313df83849ad |
|
BLAKE2b-256 | 8a27b83088979f74ab28f72ec3affaa4f38f937fc932d8db1d7d43a3e797bf41 |
File details
Details for the file fastapi_security_middleware-0.1.3-py3-none-any.whl
.
File metadata
- Download URL: fastapi_security_middleware-0.1.3-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cef2fb95ccafed2269ef71d97259f13fb12604357795f025306bb0e6c27f3747 |
|
MD5 | c52ef8c2d1be6a0dc02351bd983d3fec |
|
BLAKE2b-256 | d216ee34c77986c93dccbf4dc63f9404dcc73e9c1c0b955dfc92ec36b661d978 |