You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CSV文件Prompt字段恶意脚本检测与过滤方案咨询

处理CSV输入的安全最佳实践与工具推荐

一、特殊字符过滤与XSS防护(针对<script>内容)

  • 正则过滤实现:
    1. 先明确安全团队指定的高危字符列表(比如', ", ;, --, /*等SQL注入相关字符,或<, >等XSS触发字符),再通过正则完成双重清理:
      import re
      def sanitize_prompt(prompt):
          # 移除所有<script>标签及内容,支持大小写不敏感、跨行匹配
          prompt = re.sub(r'<script[^>]*>.*?</script>', '', prompt, flags=re.IGNORECASE | re.DOTALL)
          # 移除指定特殊字符,可根据需求替换为空或安全占位符(如空格)
          forbidden_chars = r"['\";--/*<>]"
          prompt = re.sub(forbidden_chars, '', prompt)
          return prompt
      
    2. 注意:正则要覆盖不全/变形的脚本标签(比如<SCRIPT src=x>),用re.DOTALL处理跨行的脚本内容。
  • 成熟工具替代:
    • Python生态可使用bleach库专门做HTML/XSS清理,既能精准移除<script>这类危险标签,也能过滤特殊字符:
      import bleach
      def sanitize_with_bleach(prompt):
          # 禁止所有HTML标签,直接剥离
          cleaned = bleach.clean(prompt, tags=[], strip=True)
          # 额外清理安全团队指定的SQL高危字符
          cleaned = re.sub(r"['\";--/*]", '', cleaned)
          return cleaned
      
    • Java生态可使用OWASP Java Encoder,支持输入编码、危险字符过滤,同时覆盖XSS和SQL注入防护场景。

二、SQL注入防护补充措施

  • 参数化传递:即使你不存储数据,若外部API后端涉及SQL操作,建议将Prompt作为独立参数传递,而非嵌入到可能被解析为SQL语句的字符串中,避免API端因拼接字符串触发注入。
  • 输入校验前置:除过滤外,增加基础校验:限制Prompt的长度(比如最长2000字符),校验Address的格式(确保是合法的唯一ID,如UUID、数字串),直接丢弃格式异常的行。

三、流程层面的安全强化

  • 分层校验:在多环节设置防护,避免单点失效:
    1. CSV读取阶段:校验每行的Address、Prompt字段是否符合格式要求,丢弃空值或格式异常的行。
    2. 请求构造前:先执行字符过滤,再用简单规则扫描可疑内容(比如包含UNION SELECT等SQL关键字),拦截高风险请求。
  • 日志留痕:记录被过滤/拦截的请求(仅记录customId和过滤前的内容摘要,避免敏感数据泄露),方便安全团队复盘。

内容的提问来源于stack exchange,提问作者roxiehehe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 17:42:27