rasp 系统_RASP 类接口

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 请求上下文信息

plugin.register('sql', function(params, context){

// 在这里实现检测逻辑

// 并返回结果

return {

action: 'ignore',

message: '无风险'

}

})

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

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

将SQL语句解析为 Token(BETA)

函数接受两个参数

query 表示要解析的查询语句

server 表示SQL服务器类型

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

RASP.sql_tokenize('SELECT * FROM users WHERE id = -1 union/*!50000select*/1,2,3', 'mysql')

// [

// { text: 'SELECT', start: 0, stop: 5 },

// { text: '*', start: 7, stop: 7 },

// ...

// ]

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

函数接受一个参数

command 表示要解析的命令

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

RASP.cmd_tokenize('/bin/bash -c ls')

// [

// { text: '/bin/bash', stop: 8, start: 0 },

// { text: '-c', stop: 11, start: 10 },

// { text: 'ls', stop: 14, start: 13 }

// ]

打印调试日志

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

plugin.log('hello', 'openrasp')

// 将会在日志里输出 [demo] hellp openrasp

获取插件名

var name = plugin.name

// => 'demo'

手动调用检测方法

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

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

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

var params = {

'query': 'select * from users',

'server': 'mysql'

}

var checkContext = new Context()

RASP.check('sql', params, context)

// => [{

// 'action': 'block',

// 'message': 'attack',

// 'name': 'demo'

// }]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值