Zum Hauptinhalt springen
ai-slop/hardcoded-urlmanuelle Behebung

Hartcodierte URL.

Eine umgebungsspezifische URL im Quellcode: eine API-Basis, ein Staging-Host, ein Webhook-Endpunkt. Der Code funktioniert in einer Umgebung und ruft sie stillschweigend aus allen anderen auf.

Beanstandete und saubere Form.

Jedes Beispiel zeigt genau die Codeform, nach der die Regel sucht, und dann die kleinste Version, die die Absicht bewahrt, ohne Risiken zu verstecken oder Rauschen hinzuzufügen.

hardcoded-url.ts
✗ Beanstandet
const API_BASE_URL = 'https://api.staging.acme-internal.io/v2'

export const fetchOrders = () =>
  fetch(`${API_BASE_URL}/orders`).then((res) => res.json())
Warum das anschlägt

Deterministischer Zeilenabgleich: beanstandet quotierte `http(s)://`-Literale in Zeilen, die eine URL-Einstellung benennen (`api`, `baseUrl`, `endpoint`, `host`, `webhook`, `url` und ähnliche) oder deren Host umgebungsspezifisch aussieht (`api.`, `staging`, `dev`, `internal`).

hardcoded-url.ts
✓ Sauber
const API_BASE_URL = process.env.ORDERS_API_URL

export const fetchOrders = () =>
  fetch(`${API_BASE_URL}/orders`).then((res) => res.json())
Was sich geändert hat

Lies umgebungsspezifische URLs aus Umgebungsvariablen oder einem typisierten Konfigurationsmodul. Lass nur stabile öffentliche oder Dokumentationslinks inline.

Agenten fügen die URL ein, die sie bekommen haben, damit ein Request funktioniert. Nichts kennzeichnet sie als Konfiguration, also wird sie ausgeliefert.

Wie diese Regel begründet ist.

Regel-ID

ai-slop/hardcoded-url

Prüfende Engine

ai-slop

Erkennungsstrategie

Deterministischer Zeilenabgleich: beanstandet quotierte `http(s)://`-Literale in Zeilen, die eine URL-Einstellung benennen (`api`, `baseUrl`, `endpoint`, `host`, `webhook`, `url` und ähnliche) oder deren Host umgebungsspezifisch aussieht (`api.`, `staging`, `dev`, `internal`).

Legitimer Code, der NICHT beanstandet wird

`example.com`, localhost- und Loopback-Adressen, bekannte Vendor-APIs wie GitHub und Stripe, Dokumentations- und Link-Kontexte, Zeilen, die aus der Umgebung lesen, Kommentare, Docstrings, Migrationen und Pfade außerhalb des Produktivcodes werden nicht beanstandet.

Belege

Eingeführt in aislop v0.9.5 zusammen mit hardcoded-id; seit v0.9.6 werden localhost- und Loopback-URLs nicht mehr beanstandet.