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 200 "Hello! I got your URI request - $request_uri\n";
82
-
}
83
-
}
84
-
}
85
-
```
86
-
87
-
{{% /tab %}}
88
-
89
-
{{% tab name="example.js" %}}
90
-
91
-
```js
92
-
asyncfunctionfetch_subrequest(r) {
93
-
let reply =awaitr.subrequest('/<script>');
94
-
let response = {
95
-
uri:reply.uri,
96
-
code:reply.status,
97
-
body:reply.responseText,
98
-
};
99
-
r.return(200, JSON.stringify(response));
100
-
}
101
-
102
-
exportdefault {join};
103
-
```
104
-
105
-
{{% /tab %}}
106
-
107
-
{{< /tabs >}}
108
-
109
-
If the njs handler triggers an internal subrequest to `/<script>`, it is not inspected by F5 WAF for NGINX and succeeds:
110
-
111
-
```shell
112
-
curl "localhost/"
113
-
```
114
-
115
-
```text
116
-
{"uri":"/<script>","code":200,"body":"Hello! I got your URI request - /foo//\n"}
117
-
118
-
```
119
-
120
-
However, if a direct, client-facing request attempts to trigger the same URL, it is inspected by F5 WAF for NGINX and is blocked according to the security policy.
121
-
122
-
```shell
123
-
curl "localhost/<script>"
124
-
```
125
-
126
-
```text
127
-
<html><head><title>Request Rejected</title></head><body>The requested URL was rejected. Please consult with your administrator.
return 200 "Hello! I got your URI request - $request_uri\n";
248
197
}
249
198
}
250
199
}
251
200
```
252
201
202
+
{{% /tab %}}
203
+
204
+
{{% tab name="example.js" %}}
205
+
206
+
```js
207
+
asyncfunctionfetch_subrequest(r) {
208
+
let reply =awaitr.subrequest('/<script>');
209
+
let response = {
210
+
uri:reply.uri,
211
+
code:reply.status,
212
+
body:reply.responseText,
213
+
};
214
+
r.return(200, JSON.stringify(response));
215
+
}
216
+
217
+
exportdefault {join};
218
+
```
219
+
220
+
{{% /tab %}}
221
+
222
+
{{< /tabs >}}
223
+
224
+
If the njs handler triggers an internal subrequest to `/<script>`, it is not inspected by F5 WAF for NGINX and succeeds:
225
+
226
+
```shell
227
+
curl "localhost/"
228
+
```
229
+
230
+
```text
231
+
{"uri":"/<script>","code":200,"body":"Hello! I got your URI request - /foo//\n"}
232
+
233
+
```
234
+
235
+
However, if a direct, client-facing request attempts to trigger the same URL, it is inspected by F5 WAF for NGINX and is blocked according to the security policy.
236
+
237
+
```shell
238
+
curl "localhost/<script>"
239
+
```
240
+
241
+
```text
242
+
<html><head><title>Request Rejected</title></head><body>The requested URL was rejected. Please consult with your administrator.
Features that add or depend on the HTTP Range header are unsupported in the same scope as __app_protect_enable__ on. Place Range-dependent logic in a separate scope that does not enable F5 WAF for NGINX, and have the F5 WAF for NGINX enable frontend proxy to that backend.
@@ -259,9 +255,7 @@ Examples of Range-dependent features:
0 commit comments