diff --git a/app.py b/app.py index 4a02eb6..1b3c575 100644 --- a/app.py +++ b/app.py @@ -93,7 +93,6 @@ def requires_auth(f): # Rate-Limiting (pro Client-IP, in-memory – reicht für einen einzelnen Prozess) # --------------------------------------------------------------------------- # def client_ip() -> str: - # Wenn hinter einem Reverse Proxy: X-Forwarded-For des Proxys vertrauen. fwd = request.headers.get("X-Forwarded-For") return fwd.split(",")[0].strip() if fwd else request.remote_addr or "unknown" @@ -139,57 +138,127 @@ def is_public_target(url: str) -> bool: return True +# --------------------------------------------------------------------------- # +# Design im Stil von software.obraasch.de: dunkler Header, orange Akzente, +# helle Cards. +# --------------------------------------------------------------------------- # PAGE = """ + SkillSpector -

🔍 SkillSpector

-

Scannt einen Skill (Git-Repo oder ZIP) auf Sicherheitsrisiken, bevor er installiert wird. -Basiert auf NVIDIA SkillSpector (Apache-2.0).

-
- - - - - {% if allow_llm %} - +
+
+ +

Sicherheits-Scanner für AI-Agent-Skills – vor dem Installieren prüfen

+
+
+
+
+ + + + + + {% if allow_llm %} +
+ + +
+ {% endif %} + + +
+ + {% if result %} +
+
+ {{ result.risk_assessment.score }}/100 + {{ result.risk_assessment.recommendation }} +
+
{{ result_json }}
+
+ {% elif error %} +
+

{{ error }}

+
{% endif %} - - -
-{% if result %} -

Ergebnis

-

- {{ result.risk_assessment.score }}/100 — {{ result.risk_assessment.severity }} — {{ result.risk_assessment.recommendation }} -

-
{{ result_json }}
-{% elif error %} -

{{ error }}

-{% endif %} -

- Statische Analyse läuft immer lokal. {% if allow_llm %}Bei aktivierter LLM-Analyse werden - Dateiinhalte an einen externen KI-Anbieter übertragen.{% endif %} - Der gescannte Skill wird zu keinem Zeitpunkt ausgeführt. Kein Ergebnis wird dauerhaft - gespeichert – es erscheint nur auf dieser Seite. -

+
+ """