Home > widget-integration > FilterValidationHelper > isBadSearchTerm

FilterValidationHelper.isBadSearchTerm() method

Checks if a search term contains potentially malicious content.

Detects XSS patterns, JavaScript code, HTML tags, and event handlers using multi-layered pattern matching for comprehensive security.

Signature:

isBadSearchTerm(term: unknown): boolean;

Parameters

Parameter

Type

Description

term

unknown

The search term to validate. Non-string values return false.

Returns:

boolean

true if the term contains malicious patterns, false if safe or non-string

Remarks

Detection Strategy: - JavaScript function calls: alert(), console.log(), execCommand, etc. - HTML tags:

This method is security-critical and uses cached regex patterns for performance. Override to add shop-specific blocked patterns or modify detection sensitivity.

Example 1

Basic validation:

if (this.validationHelper.isBadSearchTerm(userInput)) {
  console.warn('Blocked malicious search term');
  return;
}

Example 2

Extend to add shop-specific blocked terms:

window.boostWidgetIntegration.extend('FilterValidationHelper', (FilterValidationHelper) => {
  return class extends FilterValidationHelper {
    isBadSearchTerm(term) {
      // Block shop-specific terms first
      if (typeof term === 'string') {
        const blockedTerms = ['competitor-brand', 'banned-keyword'];
        if (blockedTerms.some(blocked => term.toLowerCase().includes(blocked))) {
          return true;
        }
      }
      return super.isBadSearchTerm(term);
    }
  };
});