@jokerized/decksmith 0.5.1 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +6 -3
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -420,9 +420,12 @@ not a polish gap:
420
420
 
421
421
  - **No authentication and no TLS.** Anyone who can reach the port can spend your Codex
422
422
  quota. This is why the default bind is loopback.
423
- - **No CSRF defence.** `POST /api/jobs` is `multipart/form-data`, which is a CORS-*simple*
424
- request: any website a victim visits can make their browser submit a job. There is no
425
- token and no `Origin` check. Fix that before `DECKSMITH_HOST` is ever anything else.
423
+ - **DNS rebinding is refused only on a loopback bind.** A write another site's page makes
424
+ a browser send is refused on any bind: `Sec-Fetch-Site`, or `Origin` where that is
425
+ missing. But a rebinding page is same-origin to itself, and the only thing that gives it
426
+ away is a `Host` naming something other than the server. On `127.0.0.1` that check is
427
+ on. On any other `DECKSMITH_HOST` the server cannot know its own names, so the check is
428
+ off until it is given an allowlist.
426
429
  - **Codex spend is unmetered per upload.** The per-IP hourly limit is the only brake, and
427
430
  it is per-IP.
428
431
  - **Rate limiting is by `socket.remoteAddress` only.** `X-Forwarded-For` is deliberately
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jokerized/decksmith",
3
- "version": "0.5.1",
3
+ "version": "0.5.2",
4
4
  "description": "Turn a source document into an animated explanation deck.",
5
5
  "type": "module",
6
6
  "license": "MIT",