You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Return a 400 error for single invalid domain API requests
Clarify why DKIM may be missing
Add `s1` and `s2` to our known DKIM selectors
Don't return an error for NXDOMAIN DNS requests, as these are expected from some requests (e.g. trying to find the correct DKIM selector)
Copy file name to clipboardExpand all lines: README.md
+21-7Lines changed: 21 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,14 @@
1
1
# Domain Security Scanner
2
-
The Domain Security Scanner can be used to perform scans against domains for DKIM, DMARC, and SPF DNS records. You can also serve this functionality via an API, or a dedicated mailbox. A web application is also available if organizations would like to perform a single domain scan for DKIM, DMARC or SPF at [https://dmarcguide.globalcyberalliance.org](https://dmarcguide.globalcyberalliance.org).
2
+
3
+
The Domain Security Scanner can be used to perform scans against domains for DKIM, DMARC, and SPF DNS records. You can
4
+
also serve this functionality via an API, or a dedicated mailbox. A web application is also available if organizations
5
+
would like to perform a single domain scan for DKIM, DMARC or SPF
6
+
at [https://dmarcguide.globalcyberalliance.org](https://dmarcguide.globalcyberalliance.org).
3
7
4
8
## Download
5
-
You can download pre-compiled binaries for macOS, Linux and Windows from the [releases](https://github.com/GlobalCyberAlliance/domain-security-scanner/releases) page.
9
+
10
+
You can download pre-compiled binaries for macOS, Linux and Windows from
11
+
the [releases](https://github.com/GlobalCyberAlliance/domain-security-scanner/releases) page.
6
12
7
13
Alternatively, you can run the binary from within our pre-built Docker image:
8
14
@@ -23,6 +29,7 @@ make
23
29
This will output a binary called `dss`. You can then move it or use it by running `./bin/dss` (on Unix devices).
24
30
25
31
## Find a Specific Record From a Single Domain
32
+
26
33
To scan a domain for a specific type of record (A, AAAA, CNAME, DKIM, DMARC, MX, SPF, TXT), run:
27
34
28
35
`dss scan [domain] --type dmarc`
@@ -35,7 +42,8 @@ Example:
35
42
36
43
## Bulk Scan Domains
37
44
38
-
Scan any number of domains' DNS records. By default, this listens on `STDIN`, meaning you run the command via `dss scan` and then enter each domain one-by-one.
45
+
Scan any number of domains' DNS records. By default, this listens on `STDIN`, meaning you run the command via `dss scan`
46
+
and then enter each domain one-by-one.
39
47
40
48
Alternatively, you can specify multiple domains at runtime:
41
49
@@ -49,13 +57,17 @@ See the [zonefile.example](zonefile.example) file in this repo.
49
57
50
58
## Serve REST API
51
59
52
-
You can also expose the domain scanning functionality via a REST API. By default, this is rate limited to 3 requests per 3 second interval from a single IP address. Serve the API by running the following:
60
+
You can also expose the domain scanning functionality via a REST API. By default, this is rate limited to 3 requests per
61
+
3 second interval from a single IP address. Serve the API by running the following:
53
62
54
63
`dss serve api --port 80`
55
64
56
-
You can reach the API docs by visiting `http://server-ip:port/api/v1/docs` and the OpenAPI schema at `http://server-ip:port/api/v1/docs.json` or `http://server-ip:port/api/v1/docs.yaml`. You can also test requests through this interface thanks to [Scalar](https://github.com/scalar/scalar).
65
+
You can reach the API docs by visiting `http://server-ip:port/api/v1/docs` and the OpenAPI schema
66
+
at `http://server-ip:port/api/v1/docs.json` or `http://server-ip:port/api/v1/docs.yaml`. You can also test requests
67
+
through this interface thanks to [Scalar](https://github.com/scalar/scalar).
57
68
58
-
You can then get a single domain's results by submitting a GET request like this `http://server-ip:port/api/v1/scan/globalcyberalliance.org`, which will return a JSON response similar to this:
69
+
You can then get a single domain's results by submitting a GET request like
70
+
this `http://server-ip:port/api/v1/scan/globalcyberalliance.org`, which will return a JSON response similar to this:
59
71
60
72
```json
61
73
{
@@ -98,7 +110,8 @@ You can then get a single domain's results by submitting a GET request like this
98
110
}
99
111
```
100
112
101
-
Alternatively, you can scan multiple domains by POSTing them to `http://server-ip:port/api/v1/scan` with a request body like this:
113
+
Alternatively, you can scan multiple domains by POSTing them to `http://server-ip:port/api/v1/scan` with a request body
return []string{"We couldn't detect any active DKIM record for your domain. Please visit https://dmarcguide.globalcyberalliance.org to fix this."}
192
+
return []string{"We couldn't detect any active DKIM record for your domain. Due to how DKIM works, we only lookup common/known DKIM selectors (such as x, selector1, google). Visit https://dmarcguide.globalcyberalliance.org for more info on how to configure DKIM for your domain."}
0 commit comments