Skip to content

Commit 2275399

Browse files
committed
Add new meta tag _dd.p.appsec
1 parent 1510ef9 commit 2275399

File tree

1 file changed

+28
-17
lines changed

1 file changed

+28
-17
lines changed

appsec/src/extension/tags.c

+28-17
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#endif
2727

2828
#define DD_TAG_DATA "_dd.appsec.json"
29+
#define DD_TAG_P_APPSEC "_dd.p.appsec"
2930
#define DD_TAG_EVENT "appsec.event"
3031
#define DD_TAG_BLOCKED "appsec.blocked"
3132
#define DD_TAG_RUNTIME_FAMILY "_dd.runtime_family"
@@ -63,6 +64,7 @@
6364
static zend_string *_dd_tag_data_zstr;
6465
static zend_string *_dd_tag_event_zstr;
6566
static zend_string *_dd_tag_blocked_zstr;
67+
static zend_string *_dd_tag_p_appsec_zstr;
6668
static zend_string *_dd_tag_http_method_zstr;
6769
static zend_string *_dd_tag_http_user_agent_zstr;
6870
static zend_string *_dd_tag_http_status_code_zstr;
@@ -93,6 +95,7 @@ static zend_string *_key_server_name_zstr;
9395
static zend_string *_key_http_user_agent_zstr;
9496
static zend_string *_key_https_zstr;
9597
static zend_string *_key_remote_addr_zstr;
98+
static zend_string *_1_zstr;
9699
static zend_string *_true_zstr;
97100
static zend_string *_false_zstr;
98101
static zend_string *_track_zstr;
@@ -127,9 +130,12 @@ void dd_tags_startup()
127130
zend_string_init_interned(LSTRARG(DD_TAG_EVENT), 1 /* permanent */);
128131
_dd_tag_blocked_zstr =
129132
zend_string_init_interned(LSTRARG(DD_TAG_BLOCKED), 1 /* permanent */);
133+
_1_zstr = zend_string_init_interned(LSTRARG("1"), 1 /* permanent */);
130134
_true_zstr = zend_string_init_interned(LSTRARG("true"), 1 /* permanent */);
131135
_false_zstr =
132136
zend_string_init_interned(LSTRARG("false"), 1 /* permanent */);
137+
_dd_tag_p_appsec_zstr =
138+
zend_string_init_interned(LSTRARG(DD_TAG_P_APPSEC), 1 /* permanent */);
133139

134140
_dd_tag_http_method_zstr =
135141
zend_string_init_interned(LSTRARG(DD_TAG_HTTP_METHOD), 1);
@@ -364,6 +370,10 @@ void dd_tags_add_tags(
364370
return;
365371
}
366372

373+
// Indicate there is a ASM EVENT. This tag is used for any event threats,
374+
// business logic events, IAST, etc
375+
_add_new_zstr_to_meta(meta_ht, _dd_tag_p_appsec_zstr, _1_zstr, true, false);
376+
367377
// Add tags with request/response information
368378
if (server) {
369379
if (!_add_all_ancillary_tags(span, server)) {
@@ -475,23 +485,6 @@ static void _add_basic_tags_to_meta(
475485
_dd_request_headers(meta_ht, _server, headers);
476486
}
477487

478-
// NOLINTNEXTLINE(bugprone-easily-swappable-parameters)
479-
static void _add_all_tags_to_meta(
480-
zval *nonnull meta, const zend_array *nonnull _server)
481-
{
482-
zend_array *meta_ht = Z_ARRVAL_P(meta);
483-
_dd_http_method(meta_ht);
484-
_dd_http_url(meta_ht, _server);
485-
_dd_http_user_agent(meta_ht, _server);
486-
_dd_http_status_code(meta_ht);
487-
_dd_http_network_client_ip(meta_ht, _server);
488-
_dd_request_headers(meta_ht, _server, &_relevant_headers);
489-
_dd_http_client_ip(meta_ht);
490-
_dd_response_headers(meta_ht);
491-
_dd_event_user_id(meta_ht);
492-
_dd_appsec_blocked(meta_ht);
493-
}
494-
495488
static void _add_new_zstr_to_meta(zend_array *meta_ht, zend_string *key,
496489
zend_string *val, bool copy, bool override)
497490
{
@@ -517,6 +510,24 @@ static void _add_new_zstr_to_meta(zend_array *meta_ht, zend_string *key,
517510
zend_string_release(val);
518511
}
519512
}
513+
514+
// NOLINTNEXTLINE(bugprone-easily-swappable-parameters)
515+
static void _add_all_tags_to_meta(
516+
zval *nonnull meta, const zend_array *nonnull _server)
517+
{
518+
zend_array *meta_ht = Z_ARRVAL_P(meta);
519+
_dd_http_method(meta_ht);
520+
_dd_http_url(meta_ht, _server);
521+
_dd_http_user_agent(meta_ht, _server);
522+
_dd_http_status_code(meta_ht);
523+
_dd_http_network_client_ip(meta_ht, _server);
524+
_dd_request_headers(meta_ht, _server, &_relevant_headers);
525+
_dd_http_client_ip(meta_ht);
526+
_dd_response_headers(meta_ht);
527+
_dd_event_user_id(meta_ht);
528+
_dd_appsec_blocked(meta_ht);
529+
}
530+
520531
static void _dd_http_method(zend_array *meta_ht)
521532
{
522533
if (zend_hash_exists(meta_ht, _dd_tag_http_method_zstr)) {

0 commit comments

Comments
 (0)