nuke/docs
Xe Iaso 22c47f40d1
feat(expressions): add randInt function to allow making rules nondeterministic (#578)
This seems counter-intuitive at first glance, but let me cook.

One of the problems with Anubis is that the rule matching is super
deterministic. This means that attackers can figure out what patterns
they are hitting and change things to bypass them.

The randInt function lets you have rulesets behave nondeterministically.
This is a very easy way to hang yourself, but can be great to
psychologically mess with scraper operators. Consider this rule:

```yaml
- name: deny-lightpanda-sometimes
  action: DENY
  expression:
    all:
      - userAgent.matches("LightPanda")
      - randInt(16) >= 4
```

It would match about 75% of the time.

Signed-off-by: Xe Iaso <me@xeiaso.net>
2025-05-28 16:36:27 -04:00
..
docs feat(expressions): add randInt function to allow making rules nondeterministic (#578) 2025-05-28 16:36:27 -04:00
manifest cmd/anubis: allow setting key bytes in flag/envvar (#97) 2025-03-25 17:02:48 -04:00
src fix(docs): make the docs respect light/dark mode (#334) 2025-04-23 04:01:02 +00:00
static chore(sponsors): add weblate 2025-05-13 10:02:42 -04:00
.dockerignore add docs site based on docusarus (#35) 2025-03-20 15:06:58 -04:00
.gitignore add docs site based on docusarus (#35) 2025-03-20 15:06:58 -04:00
Dockerfile Explicitely define image sources in Dockerfile (#21) 2025-03-20 17:28:30 -04:00
docusaurus.config.ts fix(docs): make the docs respect light/dark mode (#334) 2025-04-23 04:01:02 +00:00
package-lock.json build(deps): bump estree-util-value-to-estree in /docs (#336) 2025-04-23 07:09:01 -04:00
package.json add docs site based on docusarus (#35) 2025-03-20 15:06:58 -04:00
README.md add docs site based on docusarus (#35) 2025-03-20 15:06:58 -04:00
sidebars.ts add docs site based on docusarus (#35) 2025-03-20 15:06:58 -04:00
tsconfig.json add docs site based on docusarus (#35) 2025-03-20 15:06:58 -04:00

Website

This website is built using Docusaurus, a modern static website generator.

Installation

$ yarn

Local Development

$ yarn start

This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.

Build

$ yarn build

This command generates static content into the build directory and can be served using any static contents hosting service.

Deployment

Using SSH:

$ USE_SSH=true yarn deploy

Not using SSH:

$ GIT_USER=<Your GitHub username> yarn deploy

If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the gh-pages branch.