RASP 类接口

所有插件需要实例化一个 RASP 对象,并在此对象上注册各检测点对应的检测程序

创建实例

创建 RASP 实例需传入插件名,e.g demo

var plugin = new RASP('demo')

获取agent版本号 (v1.2.0 加入)

var name = plugin.get_version()
// 返回 1.2.0

获取JS引擎名称

var name = plugin.get_jsengine()
// 返回 rhino / v8

发送HTTP请求 (v1.2.0 加入)

支持发送 GET/POST 请求,其中 data 字段可以是字符串、对象或者 Buffer

var body = {
    "name": "openrasp"
}

var req  = {
    "method":       "post",
    "url":          "http://127.0.0.1/test",
    "data":         data,
    "maxRedirects": 0,
    "timeout":      30,
    "headers": { 
        "content-type": "application/json"
    },    
}
    
RASP.request(req)

注册检测程序到对应检测点

检测函数接受两个参数

  • params 对应检测点的参数信息

  • context 请求上下文信息

具体有哪些检测点可以注册,以及 params 的样例,请参考检 参数说明

注意: 对于同一个检测点,如果你注册了多个检测函数,这些函数会按照注册顺序,依次调用

将SQL语句解析为 Token(BETA)

函数接受两个参数

  • query 表示要解析的查询语句

  • server 表示SQL服务器类型

目前本功能还在试验阶段,且暂时不区分SQL服务器类型。

将 Bash/CMD 语句解析为 Token(BETA)

函数接受一个参数

  • command 表示要解析的命令

目前本功能还在试验阶段,且暂时不区分操作系统

打印调试日志

使用方法与 console.log 一致,只是会同时输出插件的名字,方便你区分不同插件的日志

获取插件名

手动调用检测方法

在编写单元测试时,可手动调用此方法

这个方法会按照注册顺序,依次调用所有的检测函数,并返回一个检测结果数组

e.g 模拟一个SQL注入请求,请调用插件获取检测结果

Last updated