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
Copy file name to clipboardExpand all lines: src/content/docs/cloudflare-challenges/challenge-types/turnstile.mdx
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ Turnstile differs from Challenges Pages in that the Challenge does not pause the
13
13
14
14
In most cases, nothing further is required from the visitor. However, if necessary, Turnstile may display a simple checkbox that the visitor must click to proceed.
15
15
16
-
After the Challenge passes, Turnstile issues a clearance token to the visitor that must be validated via the [siteverify API](/turnstile/get-started/server-side-validation/) before completing a sensitive action like login, sign up, or other form submissions.
16
+
After the Challenge passes, Turnstile issues a clearance token to the visitor that must be validated via the [Siteverify API](/turnstile/get-started/server-side-validation/) before completing a sensitive action like login, sign up, or other form submissions.
Copy file name to clipboardExpand all lines: src/content/docs/pages/functions/plugins/turnstile.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -62,4 +62,4 @@ The Plugin is mounted with a single object parameter with the following properti
62
62
63
63
`onError` is an optional function which takes the Pages Function context object and returns a `Promise` of a `Response`. By default, it will return a human-readable error `Response`.
64
64
65
-
`context.data.turnstile` will be populated in subsequent Pages Functions (including for the `onError` function) with [the Turnstile siteverify response object](/turnstile/get-started/server-side-validation/).
65
+
`context.data.turnstile` will be populated in subsequent Pages Functions (including for the `onError` function) with [the Turnstile Siteverify response object](/turnstile/get-started/server-side-validation/).
Copy file name to clipboardExpand all lines: src/content/docs/turnstile/concepts/hostname-management.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,7 +36,7 @@ If you already have a zone registered with Cloudflare, you can add hostnames dur
36
36
## Hostname requirements
37
37
38
38
:::caution
39
-
Customers enabling [client-side rendering](/turnstile/get-started/client-side-rendering/) must validate their hostnames by looking at the [`hostname`](/turnstile/get-started/server-side-validation/#:~:text=challenge%20was%20solved.-,hostname,-is%20the%20hostname) field in the siteverify response.
39
+
Customers enabling [client-side rendering](/turnstile/get-started/client-side-rendering/) must validate their hostnames by looking at the [`hostname`](/turnstile/get-started/server-side-validation/#:~:text=challenge%20was%20solved.-,hostname,-is%20the%20hostname) field in the Siteverify response.
40
40
:::
41
41
42
42
When associating hostnames with a widget, follow these requirements:
Copy file name to clipboardExpand all lines: src/content/docs/turnstile/get-started/client-side-rendering.mdx
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,7 +35,7 @@ The HTML is scanned for elements that have a `cf-turnstile` class name:
35
35
36
36
</div>
37
37
38
-
Once a challenge has been solved, a token is passed to the success callback. This token must be validated against our siteverify endpoint. A token can only be validated once and cannot be consumed twice.
38
+
Once a challenge has been solved, a token is passed to the success callback. This token must be validated against the Siteverify API. A token can only be validated once and cannot be consumed twice.
39
39
40
40
<Renderfile="siteverify-warning" />
41
41
@@ -67,7 +67,7 @@ An invisible input with the name `cf-turnstile-response` is added and will be se
67
67
68
68
:::note
69
69
70
-
A form is not protected by having a widget rendered. The corresponding token that is a result of a widget being rendered also needs to be verified using the siteverify API.
70
+
A form is not protected by having a widget rendered. The corresponding token that is a result of a widget being rendered also needs to be verified using the Siteverify API.
Turnstile needs to be verified using siteverify because it is a front-end widget that creates a token which is cryptographically secured. To ensure that a token is not forged by an attacker or has not been consumed yet, it is necessary to check the validity of a token using Cloudflare's siteverify API.
12
+
Turnstile needs to be verified using Siteverify because it is a front-end widget that creates a token which is cryptographically secured. To ensure that a token is not forged by an attacker or has not been consumed yet, it is necessary to check the validity of a token using Cloudflare's Siteverify API.
13
13
14
-
You must call the siteverify endpoint to validate the Turnstile widget response from your website’s backend. The widget response must only be considered valid once it has been verified by the siteverify endpoint. The presence of a response alone is not enough to verify it as it does not protect from replay or forgery attacks. In some cases, Turnstile may purposely create invalid responses that are rejected by the siteverify API.
14
+
You must call the Siteverify endpoint to validate the Turnstile widget response from your website’s backend. The widget response must only be considered valid once it has been verified by the Siteverify endpoint. The presence of a response alone is not enough to verify it as it does not protect from replay or forgery attacks. In some cases, Turnstile may purposely create invalid responses that are rejected by the Siteverify API.
15
15
16
-
Tokens issued to Turnstile using the success callbacks, via explicit or implicit rendering, must be validated using the siteverify endpoint. The siteverify API will only validate a token once. If a token has already been checked, the siteverify API will yield an error on subsequent verification attempts indicating that a token has already been consumed.
16
+
Tokens issued to Turnstile using the success callbacks, via explicit or implicit rendering, must be validated using the Siteverify endpoint. The Siteverify API will only validate a token once. If a token has already been checked, the Siteverify API will yield an error on subsequent verification attempts indicating that a token has already been consumed.
17
17
18
18
:::note
19
19
20
20
A Turnstile token can have up to 2048 characters.
21
21
22
-
It is also valid for 300 seconds before it is rejected by siteverify.
22
+
It is also valid for 300 seconds before it is rejected by Siteverify.
23
23
:::
24
24
25
-
The siteverify endpoint needs to be passed a <GlossaryTooltipterm="secret key">secret key</GlossaryTooltip> that is associated with the <GlossaryTooltipterm="sitekey">sitekey</GlossaryTooltip>. The secret key will be provisioned alongside the sitekey when you create a widget. Furthermore, the response needs to be passed to the siteverify endpoint.
25
+
The Siteverify endpoint needs to be passed a <GlossaryTooltipterm="secret key">secret key</GlossaryTooltip> that is associated with the <GlossaryTooltipterm="sitekey">sitekey</GlossaryTooltip>. The secret key will be provisioned alongside the sitekey when you create a widget. Furthermore, the response needs to be passed to the Siteverify endpoint.
26
26
27
27
A response may only be validated once. If the same response is presented twice, the second and each subsequent request will generate an error stating that the response has already been consumed. If an application requires to retry failed requests, it must utilize the idempotency functionality. You can do so by providing a UUID as the `idempotency_key` parameter of your `POST` request when initially validating the response and the same UUID with any subsequent request for that response.
28
28
@@ -244,7 +244,7 @@ async function handlePost(request) {
244
244
The `remoteip` parameter helps to prevent abuse by ensuring the current visitor is the one who received the token. This is currently not strictly validated.
245
245
:::
246
246
247
-
The siteverify endpoint behaves similar to reCAPTCHA’s or hCaptcha's siteverify endpoint.
247
+
The Siteverify endpoint behaves similar to reCAPTCHA’s or hCaptcha's Siteverify endpoint.
248
248
The API accepts `application/x-www-form-urlencoded` and `application/json` requests, but the response type will always be `application/json`.
249
249
250
250
It always contains a `success` property, either true or false, indicating whether the operation was successful or not.
@@ -272,7 +272,7 @@ It always contains a `success` property, either true or false, indicating whethe
272
272
-`action` is the customer widget identifier passed to the widget on the client side. This is used to differentiate widgets using the same sitekey in analytics. Its integrity is protected by modifications from an attacker. It is recommended to validate that the action matches an expected value.
273
273
-`cdata` is the customer data passed to the widget on the client side. This can be used by the customer to convey state. It is integrity protected by modifications from an attacker.
274
274
-`error-codes` is a list of errors that occurred.
275
-
- (Enterprise only) `ephemeral_id` returns the [Ephemeral ID](/turnstile/concepts/ephemeral-id/) in siteverify.
275
+
- (Enterprise only) `ephemeral_id` returns the [Ephemeral ID](/turnstile/concepts/ephemeral-id/) in Siteverify.
276
276
277
277
In case of a validation failure, the response should be similar to the following:
278
278
@@ -287,7 +287,7 @@ In case of a validation failure, the response should be similar to the following
287
287
288
288
</div>
289
289
290
-
A validation error is indicated by having the `success` property set to `false`. A list of error codes is provided to indicate why a response has failed to verify. The response may also contain additional fields based on whether Turnstile siteverify was able to parse the response successfully or unsuccessfully.
290
+
A validation error is indicated by having the `success` property set to `false`. A list of error codes is provided to indicate why a response has failed to verify. The response may also contain additional fields based on whether Turnstile Siteverify was able to parse the response successfully or unsuccessfully.
Copy file name to clipboardExpand all lines: src/content/docs/turnstile/migration/hcaptcha.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -49,5 +49,5 @@ Turnstile supports:
49
49
50
50
## Server-side integration
51
51
52
-
1. Update the server-side integration by replacing the siteverify URL. Replace: `https://hcaptcha.com/siteverify` with `https://challenges.cloudflare.com/turnstile/v0/siteverify`.
52
+
1. Update the server-side integration by replacing the Siteverify URL. Replace: `https://hcaptcha.com/siteverify` with `https://challenges.cloudflare.com/turnstile/v0/siteverify`.
53
53
2. Replace the `h-captcha-response` input name with `cf-turnstile-response`.
Copy file name to clipboardExpand all lines: src/content/docs/turnstile/migration/recaptcha.mdx
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -49,13 +49,13 @@ Turnstile supports:
49
49
50
50
## Server-side integration
51
51
52
-
Update the server-side integration by replacing the siteverify URL. Replace `https://www.google.com/recaptcha/api/siteverify` with `https://challenges.cloudflare.com/turnstile/v0/siteverify`
52
+
Update the server-side integration by replacing the Siteverify URL. Replace `https://www.google.com/recaptcha/api/siteverify` with `https://challenges.cloudflare.com/turnstile/v0/siteverify`
53
53
54
-
:::caution[Differences to reCAPTCHA's siteverify]
54
+
:::caution[Differences to reCAPTCHA's Siteverify]
55
55
56
56
reCAPTCHA supports `GET` requests using query parameters, i.e: `GET /siteverify?response=<response>&secret=<secret>`.
57
57
58
-
Turnstile's siteverify endpoint does _not_ support this and only accepts `POST` requests with a FormData or JSON body.
58
+
Turnstile's Siteverify endpoint does _not_ support this and only accepts `POST` requests with a FormData or JSON body.
59
59
60
60
Refer to [server-side validation](/turnstile/get-started/server-side-validation/) for more information.
Copy file name to clipboardExpand all lines: src/content/docs/turnstile/troubleshooting/troubleshooting-faqs.mdx
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,9 +12,9 @@ import { Render } from "~/components"
12
12
13
13
The Turnstile widget needs to be refreshed to generate a new token. This can be done using the `turnstile.reset` function.
14
14
15
-
## Can the front end use siteverify?
15
+
## Can the front end use Siteverify?
16
16
17
-
The siteverify API must not be called by the front end as this may reveal the secret key used to authenticate. An attacker may simply modify the front end to not perform the siteverify check at all, rendering Turnstile ineffective.
17
+
The Siteverify API must not be called by the front end as this may reveal the secret key used to authenticate. An attacker may simply modify the front end to not perform the siteverify check at all, rendering Turnstile ineffective.
18
18
19
19
20
20
## What is challenges.cloudflare.com, and why does my application connect to this origin?
Copy file name to clipboardExpand all lines: src/content/docs/turnstile/turnstile-analytics/challenge-outcomes.mdx
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@ When a visitor encounters Turnstile, it assesses whether they are human or bot-l
11
11
12
12
## Metrics
13
13
14
-
A "solved" Turnstile challenge does not automatically confirm the visitor is human. You must [call the siteverify API](#call-siteverify) to validate the token and proceed only if the response returns `success:true`.
14
+
A "solved" Turnstile challenge does not automatically confirm the visitor is human. You must [call the Siteverify API](#call-siteverify) to validate the token and proceed only if the response returns `success:true`.
15
15
16
16
For example, the challenge outcome values in your analytics may look like this:
17
17
@@ -25,7 +25,7 @@ For example, the challenge outcome values in your analytics may look like this:
25
25
26
26
By analyzing these metrics, you can identify trends such as high failure rates in specific regions, device types, or traffic sources, which may indicate bot activity or misconfigurations.
Copy file name to clipboardExpand all lines: src/content/docs/turnstile/turnstile-analytics/token-validation.mdx
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,18 +7,18 @@ sidebar:
7
7
8
8
import { Render } from"~/components"
9
9
10
-
After a visitor successfully completes a Turnstile challenge, a token is generated and validated via the siteverify API. Token validation data provides crucial insights into your security posture.
10
+
After a visitor successfully completes a Turnstile challenge, a token is generated and validated via the Siteverify API. Token validation data provides crucial insights into your security posture.
11
11
12
12
For example, the token validation values in your analytics may look like this:
13
13
14
14

15
15
16
16
## Metrics
17
17
18
-
-**Siteverify requests**: The total number of requests made to the siteverify API in the given timeframe.
19
-
-**Valid tokens**: The number of siteverify requests with `success:true` responses.
20
-
-**Invalid tokens**: The number of siteverify requests with `success:false` responses.
18
+
-**Siteverify requests**: The total number of requests made to the Siteverify API in the given timeframe.
19
+
-**Valid tokens**: The number of Siteverify requests with `success:true` responses.
20
+
-**Invalid tokens**: The number of Siteverify requests with `success:false` responses.
0 commit comments