如何设计一个xss过滤器

设计一个xss过滤器要求如下,请问各位该如何设计

注入过滤器select|insert|into|update|count|delete|from|where|and|or|trancate" +
      "|drop|execute|like|grant|use|union|order|by|net user|schema|add|asc|char|mid|case|when|else|current_user|\|| |'|"|;|=|`|*| |\n|%|(|)|@|&|!|#|\r|/|

xss过滤器|'|"|;|/|=|`|*| | |\n|\\|%|(|)|@|&|!|#|<|>|[|]|{|}|||script|javascript|alert|eval|window|document|toString|prompt|from|data|update|src|iframe|

SQL过滤器注意事项“
1.SQL注入防护效果 预编译>阻断器>过滤器
2.过滤器禁止单次过滤,应采用循环过滤防止存在重写绕过(形如sselectelect)
3.过滤前统一大小写,防止出现大小写绕过

XSS过滤器注意事项:
1.xss防护最优选择"输入输出双防护",即同时使用输入时进行过滤,输出时采用实体化编码。
2.过滤器禁止单次过滤,因采用循环过滤防止存在重写绕过(形如sscriptcript)
3.过滤前统一大小写,防止出现大小写绕过
4.设置http-only参数为true,这样JS就不能读取cookie信息了;

(1)预定义的字符是:
    & (和号)成为 &
     " (双引号)成为 "
    ’ (单引号)成为'
     < (小于)成为 <
     >(大于)成为 &g

满足要求的XSS过滤器,可以采取以下步骤:

  1. 首先,定义一个过滤器类,该类包含一个过滤方法,用于接受需要过滤的输入字符串,然后返回已过滤的字符串。
  2. 在过滤方法中,首先将输入字符串转换为小写字母,以防止大小写绕过。
  3. 然后,使用正则表达式匹配输入字符串中的特殊字符和关键字,如单引号、双引号、分号、等号、小于号、大于号等。如果发现任何匹配项,则将其替换为安全的字符或字符串。
  4. 对于XSS过滤,可以采用输入输出双防护的策略。在输入时,过滤掉可能包含恶意脚本的字符和字符串,如