# 插件替换模块

WARNING

Location 参数外 其余参数均为 goblin 从仿冒站点发往真实站点后响应回来的数据上修改的

 Replace:
  - Request:
      Method:
      - GET
      - POST
      Header:
        X-Forwarded-For: 127.0.0.1
        X-Real-IP: 127.0.0.1
    Response:
      Status: 200
      Header:
        GoblinServer: unknown
      Cookie:
        domain: ""
        secure: false
        httponly: false
        samesite: 4
      Body:
        File: ""
        ReplaceStr:
        - Old: Hello World
          New: Hello goblin
          Count: -1
        Append: ""
      Location: ""

# Request

内容替换模块请求头匹配的内容

  Request:
      Method:
      - GET
      - POST
      Header:
        X-Forwarded-For: 127.0.0.1
        X-Real-IP: 127.0.0.1

# Method

匹配请求方法

WARNING

此参数并不是替换的一部分而是匹配的一部分。只有匹配到对应的 URL 和与之相对应的请求方法才会进行下面的操作

替换或者删除请求头 例如:

Header:
  X-Forwarded-For: 127.0.0.1
  X-Real-IP: 127.0.0.1

WARNING

当请求头中参数为空时会删除此请求

Header:
  X-Forwarded-For: 
  X-Real-IP: 

# Response

    Response:
      Status: 200
      Header:
        GoblinServer: unknown
      Cookie:
        domain: ""
        secure: false
        httponly: false
        samesite: 4
      Body:
        File: ""
        ReplaceStr:
        - Old: Hello World
          New: Hello goblin
          Count: -1
        Append: ""
      Location: ""

# Status

替换状态码

    Response:
      Status: 200

# Header

替换或者删除响应头 例如:

Header:
  Goblinserver: 127.0.0.1
  Server: IIS

WARNING

当响应头中参数为空时会删除此请求

Header:
  Goblinserver: 
      Cookie:
        domain: ""
        secure: false
        httponly: false
        samesite: 4

此参数为有关 cookie 的参数这是一个统一的设置并不是针对某个 cookie 生效

# domain

允许哪些域名可以使用

# secure

是否只允许 https 协议读写cookies

# httponly

是否开启httponly

# samesite

csrf 相关的

# Body

      Body:
        File: ""
        ReplaceStr:
        - Old: Hello World
          New: Hello goblin
          Count: -1
        Append: ""

# File

替换为指定的文件

# ReplaceStr

新旧字符串替换

# Append

在页面内追加内容

- url: /art_103.html # 待替换的网页
  Match: Word
  Replace: # 替换模块
    - Request:
        Method: # 匹配到如下请求方式方可替换
          - GET
          - POST
        Header:
          goblin: 1.0.1  # 替换的 header 头内容。为空则是删除。
      Response: # 替换的响应内容
        Body:
          Append: "<script type='text/javascript' src='{{ .Static }}a.js'></script>" # 追加字符串

WARNING

append 和 inject模块 区别是 inject 直接注入到 js 里面。并且不会追加任何标签。append 是追加到 web 页面上需要标签闭合使用

# Location

链接 302 跳转

WARNING

此参数不是响应头中直接设置 302 跳转。而是在 goblin 往真实站点发送请求前进行的跳转