无名[] 2023-03-06 17:25 采纳率: 23.8%
浏览 44
已结题

如何设计一个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

  • 写回答

2条回答 默认 最新

  • 陈书予 2023年6月份城市(北京)之星TOP 1 2023-03-06 17:33
    关注

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

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

报告相同问题?

问题事件

  • 系统已结题 3月30日
  • 已采纳回答 3月22日
  • 创建了问题 3月6日

悬赏问题

  • ¥50 C# 使用DEVMOD设置打印机首选项
  • ¥15 想用@vueuse 把项目动态改成深色主题,localStorge里面的vueuse-color-scheme一开始就给我改成了dark,不知道什么原因(相关搜索:背景颜色)
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备
  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题