Widget für Ihre Seite

Jeśli wolisz nie wołać API z backendu — wklej jeden <script>, a pole pliku samo wywoła moderację z przeglądarki użytkownika.

1. Utwórz klucz widgetu i dodaj domeny

W paneluWidget na stronęNowy klucz widgetu (pk_live_…). Dodaj domeny, na których widget ma działać — zadziała tylko z tych domen (sprawdzamy nagłówek Origin).

2. Wklej snippet

<script src="https://modwall.dev/widget.js" data-site-key="pk_live_..."></script>
<input type="file" data-modwall>

Pole data-modwall samo wyśle wybrany plik i wyemituje zdarzenie z wynikiem:

document.addEventListener("modwall:result", function (e) {
  console.log(e.detail);   // { scores, decision, threshold, _status }
  if (e.detail.decision === "block") {
    // np. zablokuj wysyłkę formularza
  }
});

API JavaScript

Globalny obiekt Modwall:

const res = await Modwall.moderate(fileInput.files[0]);
// res = { scores: {nsfw, safe}, decision, threshold, _status }
if (res.decision !== "allow") {
  alert("Obraz nie przeszedł moderacji.");
}

Bezpieczeństwo

Klucz pk_live_ jest jawny (widoczny w kodzie strony). Chronimy go allowlistą domen — żądanie z innej domeny dostaje 403. To ochrona „przeglądarkowa": zatrzymuje użycie z cudzych stron, ale determinowany atakujący wysyłający żądanie spoza przeglądarki (np. curl z podrobionym Origin) ją obejdzie.

Dlatego krytyczne decyzje egzekwuj po stronie serwera przez API sk_live_. Widget jest do UX (szybki feedback przy uploadzie), serwerowe API jest kręgosłupem compliance.

Endpoint (pod maską)

POST /widget/moderate

Body multipart/form-data: site_key + image (opcjonalnie reference, image_url). Zwraca CORS-owe nagłówki dla dozwolonych domen. Odpowiedź jak w /v1/moderate.