diff --git a/public/class-no-unsafe-inline-public.php b/public/class-no-unsafe-inline-public.php index 1f9b141..85fc7a1 100755 --- a/public/class-no-unsafe-inline-public.php +++ b/public/class-no-unsafe-inline-public.php @@ -416,7 +416,9 @@ public function output_csp_headers( $htmlsource ) { } } - if ( 0 < strlen( $header_reporting_endpoints ) ) { + $header_csp = apply_filters( 'nunil_output_csp_headers_header_csp', $header_csp ); + + if ( 0 < strlen( $header_reporting_endpoints ) ) { if ( ! headers_sent( $filename, $linenum ) ) { header( 'Reporting-Endpoints: ' . $header_reporting_endpoints ); } else { diff --git a/src/Nunil_Manipulate_DOM.php b/src/Nunil_Manipulate_DOM.php index 7c24a00..1c74f85 100755 --- a/src/Nunil_Manipulate_DOM.php +++ b/src/Nunil_Manipulate_DOM.php @@ -986,24 +986,29 @@ private function check_cluster_whitelist( $lsh_hex_digest, $tagname, $event = nu $samples[] = $lsh_hex_digest; $dataset = new Unlabeled( $samples ); - if ( is_null( $event ) && 'script' === $tagname && isset( $this->inline_scripts_classifier ) ) { - $predicted_labels = $this->inline_scripts_classifier->predict( $dataset ); - $predicted_label = $predicted_labels[0]; - $list = $this->inline_rows; - } elseif ( is_null( $event ) && 'script' !== $tagname && isset( $this->internal_css_classifier ) ) { - $predicted_labels = $this->internal_css_classifier->predict( $dataset ); - $predicted_label = $predicted_labels[0]; - $list = $this->inline_rows; - } elseif ( null !== $event && isset( $this->event_handlers_classifier ) ) { - $predicted_labels = $this->event_handlers_classifier->predict( $dataset ); - $combined_predicted_label = $predicted_labels[0]; - $label_parts = explode( '#', $combined_predicted_label, 2 ); - $my_evh = $label_parts[0]; - $predicted_label = $label_parts[1]; - $list = $this->events_rows; - } else { + try { + if ( is_null( $event ) && 'script' === $tagname && isset( $this->inline_scripts_classifier ) ) { + $predicted_labels = $this->inline_scripts_classifier->predict( $dataset ); + $predicted_label = $predicted_labels[0]; + $list = $this->inline_rows; + } elseif ( is_null( $event ) && 'script' !== $tagname && isset( $this->internal_css_classifier ) ) { + $predicted_labels = $this->internal_css_classifier->predict( $dataset ); + $predicted_label = $predicted_labels[0]; + $list = $this->inline_rows; + } elseif ( null !== $event && isset( $this->event_handlers_classifier ) ) { + $predicted_labels = $this->event_handlers_classifier->predict( $dataset ); + $combined_predicted_label = $predicted_labels[0]; + $label_parts = explode( '#', $combined_predicted_label, 2 ); + $my_evh = $label_parts[0]; + $predicted_label = $label_parts[1]; + $list = $this->events_rows; + } else { + return false; + } + } catch ( \Rubix\ML\Exceptions\RuntimeException $e ) { return false; } + if ( is_array( $list ) ) { if ( 'Unclustered' !== $predicted_label ) { if ( null === $event ) {