|
1 | 1 | import json |
2 | 2 |
|
| 3 | +import fastapi |
3 | 4 | from fastapi import Request |
4 | 5 | from fastapi.responses import PlainTextResponse |
5 | 6 | from fastapi.testclient import TestClient |
@@ -298,29 +299,32 @@ def test_route(): |
298 | 299 |
|
299 | 300 |
|
300 | 301 | def test_request_suspicious_request_block_match_cookies(app, client, tracer, test_spans): |
301 | | - @app.get("/") |
302 | | - def test_route(): |
303 | | - return PlainTextResponse("OK") |
| 302 | + @app.get("/test_cookies", response_class=PlainTextResponse) |
| 303 | + def test_route(response: fastapi.Response): |
| 304 | + response.status_code = fastapi.status.HTTP_201_CREATED |
| 305 | + return "OK Cookie" |
304 | 306 |
|
305 | 307 | # value jdfoSDGFkivRG_234 must be blocked |
306 | 308 | with override_global_config(dict(_asm_enabled=True)), override_env(dict(DD_APPSEC_RULES=RULES_SRB)): |
307 | 309 | _aux_appsec_prepare_tracer(tracer) |
308 | | - resp = client.get("/", cookies={"keyname": "jdfoSDGFkivRG_234"}) |
309 | | - assert resp.status_code == 403 |
| 310 | + resp = client.get("/test_cookies", cookies={"keyname": "jdfoSDGFkivRG_234 45"}) |
310 | 311 | assert get_response_body(resp) == constants.BLOCKED_RESPONSE_JSON |
| 312 | + assert resp.status_code == 403 |
311 | 313 | root_span = get_root_span(test_spans) |
312 | 314 | loaded = json.loads(root_span.get_tag(APPSEC.JSON)) |
313 | 315 | assert [t["rule"]["id"] for t in loaded["triggers"]] == ["tst-037-008"] |
314 | 316 | # other value must not be blocked |
315 | 317 | with override_global_config(dict(_asm_enabled=True)), override_env(dict(DD_APPSEC_RULES=RULES_SRB)): |
316 | 318 | _aux_appsec_prepare_tracer(tracer) |
317 | | - resp = client.get("/", cookies={"keyname": "jdfoSDGFHappykivRG_234"}) |
318 | | - assert resp.status_code == 200 |
| 319 | + resp = client.get("/test_cookies", cookies={"keyname": "jdfoSDGFHappykivRG_234"}) |
| 320 | + assert resp.status_code == 201 |
| 321 | + assert get_response_body(resp) == "OK Cookie" |
319 | 322 | # appsec disabled must not block |
320 | 323 | with override_global_config(dict(_asm_enabled=False)), override_env(dict(DD_APPSEC_RULES=RULES_SRB)): |
321 | 324 | _aux_appsec_prepare_tracer(tracer, asm_enabled=False) |
322 | | - resp = client.get("/", cookies={"keyname": "jdfoSDGFkivRG_234"}) |
323 | | - assert resp.status_code == 200 |
| 325 | + resp = client.get("/test_cookies", cookies={"keyname": "jdfoSDGFkivRG_234"}) |
| 326 | + assert resp.status_code == 201 |
| 327 | + assert get_response_body(resp) == "OK Cookie" |
324 | 328 |
|
325 | 329 |
|
326 | 330 | def test_request_suspicious_request_block_match_path_params(app, client, tracer, test_spans): |
|
0 commit comments