26
26
#endif
27
27
28
28
#define DD_TAG_DATA "_dd.appsec.json"
29
+ #define DD_TAG_P_APPSEC "_dd.p.appsec"
29
30
#define DD_TAG_EVENT "appsec.event"
30
31
#define DD_TAG_BLOCKED "appsec.blocked"
31
32
#define DD_TAG_RUNTIME_FAMILY "_dd.runtime_family"
63
64
static zend_string * _dd_tag_data_zstr ;
64
65
static zend_string * _dd_tag_event_zstr ;
65
66
static zend_string * _dd_tag_blocked_zstr ;
67
+ static zend_string * _dd_tag_p_appsec_zstr ;
66
68
static zend_string * _dd_tag_http_method_zstr ;
67
69
static zend_string * _dd_tag_http_user_agent_zstr ;
68
70
static zend_string * _dd_tag_http_status_code_zstr ;
@@ -93,6 +95,7 @@ static zend_string *_key_server_name_zstr;
93
95
static zend_string * _key_http_user_agent_zstr ;
94
96
static zend_string * _key_https_zstr ;
95
97
static zend_string * _key_remote_addr_zstr ;
98
+ static zend_string * _1_zstr ;
96
99
static zend_string * _true_zstr ;
97
100
static zend_string * _false_zstr ;
98
101
static zend_string * _track_zstr ;
@@ -127,9 +130,12 @@ void dd_tags_startup()
127
130
zend_string_init_interned (LSTRARG (DD_TAG_EVENT ), 1 /* permanent */ );
128
131
_dd_tag_blocked_zstr =
129
132
zend_string_init_interned (LSTRARG (DD_TAG_BLOCKED ), 1 /* permanent */ );
133
+ _1_zstr = zend_string_init_interned (LSTRARG ("1" ), 1 /* permanent */ );
130
134
_true_zstr = zend_string_init_interned (LSTRARG ("true" ), 1 /* permanent */ );
131
135
_false_zstr =
132
136
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 */ );
133
139
134
140
_dd_tag_http_method_zstr =
135
141
zend_string_init_interned (LSTRARG (DD_TAG_HTTP_METHOD ), 1 );
@@ -364,6 +370,10 @@ void dd_tags_add_tags(
364
370
return ;
365
371
}
366
372
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
+
367
377
// Add tags with request/response information
368
378
if (server ) {
369
379
if (!_add_all_ancillary_tags (span , server )) {
@@ -475,23 +485,6 @@ static void _add_basic_tags_to_meta(
475
485
_dd_request_headers (meta_ht , _server , headers );
476
486
}
477
487
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
-
495
488
static void _add_new_zstr_to_meta (zend_array * meta_ht , zend_string * key ,
496
489
zend_string * val , bool copy , bool override )
497
490
{
@@ -517,6 +510,24 @@ static void _add_new_zstr_to_meta(zend_array *meta_ht, zend_string *key,
517
510
zend_string_release (val );
518
511
}
519
512
}
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
+
520
531
static void _dd_http_method (zend_array * meta_ht )
521
532
{
522
533
if (zend_hash_exists (meta_ht , _dd_tag_http_method_zstr )) {
0 commit comments