56 lines
2.2 KiB
YAML
56 lines
2.2 KiB
YAML
conditions:
|
|
is-well-known-asset:
|
|
# general txt files or scraper
|
|
- 'path == "/robots.txt" || path == "/security.txt"'
|
|
|
|
# ads txt files
|
|
- 'path == "/app-ads.txt" || path == "/ads.txt"'
|
|
|
|
# generally requested by browsers
|
|
- 'path == "/favicon.ico"'
|
|
|
|
# used by some applications
|
|
- 'path == "/crossdomain.xml"'
|
|
|
|
# well-known paths
|
|
- 'path.startsWith("/.well-known/")'
|
|
|
|
is-git-ua:
|
|
- 'userAgent.startsWith("git/") || userAgent.contains("libgit")'
|
|
- 'userAgent.startsWith("go-git")'
|
|
- 'userAgent.startsWith("JGit/") || userAgent.startsWith("JGit-")'
|
|
# Golang proxy and initial fetch
|
|
- 'userAgent.startsWith("GoModuleMirror/")'
|
|
- 'userAgent.startsWith("Go-http-client/") && "go-get" in query && query["go-get"] == "1"'
|
|
- '"Git-Protocol" in headers && headers["Git-Protocol"] == "version=2"'
|
|
|
|
is-generic-browser:
|
|
- 'userAgent.startsWith("Mozilla/") || userAgent.startsWith("Opera/")'
|
|
|
|
is-generic-robot-ua:
|
|
- 'userAgent.matches("compatible[;)]") && !userAgent.contains("Trident/")'
|
|
- 'userAgent.matches("\\+https?://")'
|
|
- 'userAgent.contains("@")'
|
|
- 'userAgent.matches("[bB]ot/[0-9]")'
|
|
|
|
is-tool-ua:
|
|
- 'userAgent.startsWith("python-requests/")'
|
|
- 'userAgent.startsWith("Python-urllib/")'
|
|
- 'userAgent.startsWith("python-httpx/")'
|
|
- 'userAgent.contains("aoihttp/")'
|
|
- 'userAgent.startsWith("http.rb/")'
|
|
- 'userAgent.startsWith("curl/")'
|
|
- 'userAgent.startsWith("Wget/")'
|
|
- 'userAgent.startsWith("libcurl/")'
|
|
- 'userAgent.startsWith("okhttp/")'
|
|
- 'userAgent.startsWith("Java/")'
|
|
- 'userAgent.startsWith("Apache-HttpClient//")'
|
|
- 'userAgent.startsWith("Go-http-client/")'
|
|
- 'userAgent.startsWith("node-fetch/")'
|
|
- 'userAgent.startsWith("reqwest/")'
|
|
|
|
# Checks to detect a headless chromium via headers only
|
|
is-headless-chromium:
|
|
- 'userAgent.contains("HeadlessChrome") || userAgent.contains("HeadlessChromium")'
|
|
- '"Sec-Ch-Ua" in headers && (headers["Sec-Ch-Ua"].contains("HeadlessChrome") || headers["Sec-Ch-Ua"].contains("HeadlessChromium"))'
|
|
#- '(userAgent.contains("Chrome/") || userAgent.contains("Chromium/")) && (!("Accept-Language" in headers) || !("Accept-Encoding" in headers))' |