# Siper — Türkçe API'li Güvenlik Duvarı Kütüphanesi
Modern, genişletilebilir ve performans odaklı bir güvenlik duvarı kütüphanesi.
Türkçe ve ASCII dostu API. JSON konfig, kural önceliği, karar önbelleği,
olay aboneliği (audit), gelişmiş filtreler, CLI ve middleware desteği.
## Kurulum
Kaynak koddan (yerel):
```bash
python -m pip install .
```
CLI komutu: `siper` (eski alias: `guvenlik`)
## Hızlı Başlangıç
```python
from siper import GuvenlikDuvari, Kural
from siper.filters import IPFiltre
from siper.guard import komut_gecir
komut_gecir("cyhperinios")
fw = GuvenlikDuvari(varsayilan="blok")
fw.kural_ekle(Kural([IPFiltre(izinli=["127.0.0.1"])], eylem="izin", ad="lokal"))
sonuc = fw.degerlendir(ip="127.0.0.1", port=80, protokol="TCP", yol="/", ek={"yontem": "GET"})
print(sonuc.eylem) # izin
```
## JSON Konfig ile Kullanım
`ayar.json`
```json
{
"varsayilan": "blok",
"kurallar": [
{
"ad": "lokal",
"eylem": "izin",
"oncelik": 10,
"durdur": true,
"filtreler": [
{"tip": "CIDRIPFiltre", "izinli": ["127.0.0.0/8"]}
]
}
]
}
```
CLI:
```bash
siper cyhperinios --json-dosya ayar.json --test
# alias: guvenlik cyhperinios --json-dosya ayar.json --test
```
## Başlıca Özellikler
- Kural motoru: öncelik, durdur, ad, ayrıntılı `Sonuc` açıklamaları
- Filtreler: IP/CIDR, port/port aralığı, protokol, HTTP yöntem/yol glob
- Regex tabanlı denetimler: başlık/param/gövde (WAF için temel yapıtaşları)
- Hız sınırlandırma: sliding window ve Token Bucket (burst destekli)
- Bileşik filtreler: Ve/YaDa/Değil
- Karar önbelleği (TTL + LRU)
- Olay aboneliği (audit + JSON log)
- Middleware: FastAPI ve Flask
- CLI: JSON’dan yükle, test et
## Middleware Örnekleri
FastAPI:
```python
from fastapi import FastAPI
from siper.middleware.fastapi import GuvenlikFastAPIMiddleware
from siper import GuvenlikDuvari
from siper.guard import komut_gecir
komut_gecir("cyhperinios")
fw = GuvenlikDuvari(varsayilan="blok")
app = FastAPI()
app.add_middleware(GuvenlikFastAPIMiddleware, guard=fw)
```
Flask:
```python
from flask import Flask
from siper.middleware.flask import guvenlik_flask_middleware
from siper import GuvenlikDuvari
from siper.guard import komut_gecir
komut_gecir("cyhperinios")
fw = GuvenlikDuvari(varsayilan="blok")
app = Flask(__name__)
guvenlik_flask_middleware(app, fw)
```
## Gelişmiş Log ve Metrikler
```python
from siper.logging_conf import kur_json_logger, olay_gunluk_abonesi
from siper.utils.metrics import PrometheusAbone
logger = kur_json_logger()
fw.abone_ekle(olay_gunluk_abonesi(logger))
fw.abone_ekle(PrometheusAbone(prefix="siper"))
```
Prometheus desteği opsiyoneldir: `pip install prometheus-client`
## Güvenlik Notu — Komut Kapısı
Kütüphane, çalışmadan önce gizli komut ister:
```python
from siper.guard import komut_gecir
komut_gecir("cyhperinios")
```
`config.yukle*` fonksiyonlarında da doğrulama zorunludur.
## Lisans
MIT
Raw data
{
"_id": null,
"home_page": null,
"name": "siper",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "security, firewall, waf, rate-limit, turkish",
"author": "cyhperinios",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/9b/50/735f8ba07bba3a1fa41f9008f8bb50f4a32a244bba095d29392bf93f2ba8/siper-0.1.0.tar.gz",
"platform": null,
"description": "# Siper \u2014 T\u00fcrk\u00e7e API'li G\u00fcvenlik Duvar\u0131 K\u00fct\u00fcphanesi\r\n\r\nModern, geni\u015fletilebilir ve performans odakl\u0131 bir g\u00fcvenlik duvar\u0131 k\u00fct\u00fcphanesi.\r\nT\u00fcrk\u00e7e ve ASCII dostu API. JSON konfig, kural \u00f6nceli\u011fi, karar \u00f6nbelle\u011fi,\r\nolay aboneli\u011fi (audit), geli\u015fmi\u015f filtreler, CLI ve middleware deste\u011fi.\r\n\r\n## Kurulum\r\n\r\nKaynak koddan (yerel):\r\n\r\n```bash\r\npython -m pip install .\r\n```\r\n\r\nCLI komutu: `siper` (eski alias: `guvenlik`)\r\n\r\n## H\u0131zl\u0131 Ba\u015flang\u0131\u00e7\r\n\r\n```python\r\nfrom siper import GuvenlikDuvari, Kural\r\nfrom siper.filters import IPFiltre\r\nfrom siper.guard import komut_gecir\r\n\r\nkomut_gecir(\"cyhperinios\")\r\nfw = GuvenlikDuvari(varsayilan=\"blok\")\r\nfw.kural_ekle(Kural([IPFiltre(izinli=[\"127.0.0.1\"])], eylem=\"izin\", ad=\"lokal\"))\r\n\r\nsonuc = fw.degerlendir(ip=\"127.0.0.1\", port=80, protokol=\"TCP\", yol=\"/\", ek={\"yontem\": \"GET\"})\r\nprint(sonuc.eylem) # izin\r\n```\r\n\r\n## JSON Konfig ile Kullan\u0131m\r\n\r\n`ayar.json`\r\n```json\r\n{\r\n \"varsayilan\": \"blok\",\r\n \"kurallar\": [\r\n {\r\n \"ad\": \"lokal\",\r\n \"eylem\": \"izin\",\r\n \"oncelik\": 10,\r\n \"durdur\": true,\r\n \"filtreler\": [\r\n {\"tip\": \"CIDRIPFiltre\", \"izinli\": [\"127.0.0.0/8\"]}\r\n ]\r\n }\r\n ]\r\n}\r\n```\r\n\r\nCLI:\r\n```bash\r\nsiper cyhperinios --json-dosya ayar.json --test\r\n# alias: guvenlik cyhperinios --json-dosya ayar.json --test\r\n```\r\n\r\n## Ba\u015fl\u0131ca \u00d6zellikler\r\n\r\n- Kural motoru: \u00f6ncelik, durdur, ad, ayr\u0131nt\u0131l\u0131 `Sonuc` a\u00e7\u0131klamalar\u0131\r\n- Filtreler: IP/CIDR, port/port aral\u0131\u011f\u0131, protokol, HTTP y\u00f6ntem/yol glob\r\n- Regex tabanl\u0131 denetimler: ba\u015fl\u0131k/param/g\u00f6vde (WAF i\u00e7in temel yap\u0131ta\u015flar\u0131)\r\n- H\u0131z s\u0131n\u0131rland\u0131rma: sliding window ve Token Bucket (burst destekli)\r\n- Bile\u015fik filtreler: Ve/YaDa/De\u011fil\r\n- Karar \u00f6nbelle\u011fi (TTL + LRU)\r\n- Olay aboneli\u011fi (audit + JSON log)\r\n- Middleware: FastAPI ve Flask\r\n- CLI: JSON\u2019dan y\u00fckle, test et\r\n\r\n## Middleware \u00d6rnekleri\r\n\r\nFastAPI:\r\n```python\r\nfrom fastapi import FastAPI\r\nfrom siper.middleware.fastapi import GuvenlikFastAPIMiddleware\r\nfrom siper import GuvenlikDuvari\r\nfrom siper.guard import komut_gecir\r\n\r\nkomut_gecir(\"cyhperinios\")\r\nfw = GuvenlikDuvari(varsayilan=\"blok\")\r\napp = FastAPI()\r\napp.add_middleware(GuvenlikFastAPIMiddleware, guard=fw)\r\n```\r\n\r\nFlask:\r\n```python\r\nfrom flask import Flask\r\nfrom siper.middleware.flask import guvenlik_flask_middleware\r\nfrom siper import GuvenlikDuvari\r\nfrom siper.guard import komut_gecir\r\n\r\nkomut_gecir(\"cyhperinios\")\r\nfw = GuvenlikDuvari(varsayilan=\"blok\")\r\napp = Flask(__name__)\r\nguvenlik_flask_middleware(app, fw)\r\n```\r\n\r\n## Geli\u015fmi\u015f Log ve Metrikler\r\n\r\n```python\r\nfrom siper.logging_conf import kur_json_logger, olay_gunluk_abonesi\r\nfrom siper.utils.metrics import PrometheusAbone\r\n\r\nlogger = kur_json_logger()\r\nfw.abone_ekle(olay_gunluk_abonesi(logger))\r\nfw.abone_ekle(PrometheusAbone(prefix=\"siper\"))\r\n```\r\n\r\nPrometheus deste\u011fi opsiyoneldir: `pip install prometheus-client`\r\n\r\n## G\u00fcvenlik Notu \u2014 Komut Kap\u0131s\u0131\r\n\r\nK\u00fct\u00fcphane, \u00e7al\u0131\u015fmadan \u00f6nce gizli komut ister:\r\n```python\r\nfrom siper.guard import komut_gecir\r\nkomut_gecir(\"cyhperinios\")\r\n```\r\n`config.yukle*` fonksiyonlar\u0131nda da do\u011frulama zorunludur.\r\n\r\n## Lisans\r\n\r\nMIT\r\n",
"bugtrack_url": null,
"license": null,
"summary": "Turkce API'li guvenlik duvari kutuphanesi",
"version": "0.1.0",
"project_urls": {
"Homepage": "https://pypi.org/project/siper/"
},
"split_keywords": [
"security",
" firewall",
" waf",
" rate-limit",
" turkish"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "7fb1a8b0ca7a3cc9419c2607f20c49cee181472996f1eca5e5b54c82cf2d5613",
"md5": "6f723d4dfeaa26c6c2b84526bafdec57",
"sha256": "f8e337a2d82bd4cad55e6dd1baad0765ef4adbe058268572afe775d939cf09a6"
},
"downloads": -1,
"filename": "siper-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6f723d4dfeaa26c6c2b84526bafdec57",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 25878,
"upload_time": "2025-08-25T17:23:24",
"upload_time_iso_8601": "2025-08-25T17:23:24.334816Z",
"url": "https://files.pythonhosted.org/packages/7f/b1/a8b0ca7a3cc9419c2607f20c49cee181472996f1eca5e5b54c82cf2d5613/siper-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9b50735f8ba07bba3a1fa41f9008f8bb50f4a32a244bba095d29392bf93f2ba8",
"md5": "aa92754f5017f795e89346c462b5653e",
"sha256": "aaa6ba3a9c378a6d8491a63e806545ccff564139ce787a8d228c4683ff5282d7"
},
"downloads": -1,
"filename": "siper-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "aa92754f5017f795e89346c462b5653e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 18304,
"upload_time": "2025-08-25T17:23:25",
"upload_time_iso_8601": "2025-08-25T17:23:25.516161Z",
"url": "https://files.pythonhosted.org/packages/9b/50/735f8ba07bba3a1fa41f9008f8bb50f4a32a244bba095d29392bf93f2ba8/siper-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-25 17:23:25",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "siper"
}