Skip to content

Commit 09c83bc

Browse files
fix: improve data sanitization
1 parent 8a2826e commit 09c83bc

1 file changed

Lines changed: 17 additions & 3 deletions

File tree

classes/Visualizer/Gutenberg/Block.php

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -597,8 +597,8 @@ public function update_chart_data( $data ) {
597597
$chart_type = sanitize_text_field( $data['visualizer-chart-type'] );
598598
$source_type = sanitize_text_field( $data['visualizer-source'] );
599599
$default_data = (int) $data['visualizer-default-data'];
600-
$series_data = map_deep( $data['visualizer-series'], 'sanitize_text_field' );
601-
$settings_data = map_deep( $data['visualizer-settings'], 'sanitize_text_field' );
600+
$series_data = map_deep( $data['visualizer-series'], array( $this, 'sanitize_value' ) );
601+
$settings_data = map_deep( $data['visualizer-settings'], array( $this, 'sanitize_value' ) );
602602

603603
update_post_meta( $data['id'], Visualizer_Plugin::CF_CHART_TYPE, $chart_type );
604604
update_post_meta( $data['id'], Visualizer_Plugin::CF_SOURCE, $source_type );
@@ -667,7 +667,7 @@ public function update_chart_data( $data ) {
667667
}
668668

669669
if ( Visualizer_Module::is_pro() ) {
670-
$permissions_data = map_deep( $data['visualizer-permissions'], 'sanitize_text_field' );
670+
$permissions_data = map_deep( $data['visualizer-permissions'], array( $this, 'sanitize_value' ) );
671671
update_post_meta( $data['id'], Visualizer_PRO::CF_PERMISSIONS, $permissions_data );
672672
}
673673

@@ -867,4 +867,18 @@ public function add_rest_query_vars( $args, \WP_REST_Request $request ) {
867867
}
868868
return $args;
869869
}
870+
871+
/**
872+
* Sanitize value.
873+
*
874+
* @param mixed $value The value to sanitize.
875+
* @return mixed Sanitized value.
876+
*/
877+
private function sanitize_value( $value ) {
878+
if ( is_string( $value ) ) {
879+
return sanitize_text_field( $value );
880+
}
881+
882+
return $value;
883+
}
870884
}

0 commit comments

Comments
 (0)