LARES için, müşterilerine özel erişim verilen bir web sayfası geliştirdim.
Ne yapıyor
Sayfa, LARES müşterilerinin/cihazlarının kendi kendine WireGuard ağına kayıt olabilmesini sağlıyor. Kayıt isteği arka planda CERES broker servisine iletiliyor; giriş ve kayıt uçları kötüye kullanıma karşı hız sınırlamasıyla (rate limiting) korunuyor.
Saha entegrasyonu
Bir Raspberry Pi 4 panelde, WELCO backend'inin yerel bir kopyası çalıştırılarak LoRaWAN + DALI panel entegrasyonu saha koşullarında test ediliyor; panel, WireGuard üzerinden merkezi altyapıya güvenli şekilde bağlanıyor.
Basit bir örnek
Kayıt uçlarında hız sınırlamasının mantığını özetleyen, gerçek koddan bağımsız minik bir Flask örneği:
from flask import Flask, request, jsonify
from collections import defaultdict
import time
app = Flask(__name__)
attempts = defaultdict(list)
def rate_limited(ip, limit=5, window=60):
now = time.time()
attempts[ip] = [t for t in attempts[ip] if now - t < window]
attempts[ip].append(now)
return len(attempts[ip]) > limit
@app.route("/register", methods=["POST"])
def register():
ip = request.remote_addr
if rate_limited(ip):
return jsonify(error="too many requests"), 429
return jsonify(status="ok")