用户
搜索

该用户从未签到

管理员

Rank: 9Rank: 9Rank: 9

53

主题

71

帖子

771

魔法币
收听
0
粉丝
0
注册时间
2018-12-17
发表于 2021-4-29 14:51:18 75700
740-330.jpg


讲师简介


昵称:Yaoヽ药药


i春秋年轻有为的技术版块版主;


经验丰富,职业红队,擅长APT技术研究;


多次在各大SRC平台提交高、中危漏洞,并获得证书奖励;


曾多次帮助公安完成入侵取证。


课程介绍


本节课程将实战分析i春秋论坛协议和各类接口的参数校验、分析参数值的JS算法逻辑以及遇到登录接口有参数校验时的解决方法等内容,感兴趣的小伙伴不要错过!




课程延伸


JSON Schema 简介

JSON Schema用来描述某个JSON数据应该有什么字段,这些字段受哪些规则限制,比如非空,最大长度,最小长度,符合某个正则,属于哪几个常量等。

这里给大家简单介绍下JSON Schema的基本概念,先整体看一下JSON Schema:


[AppleScript] 纯文本查看 复制代码
{
  "type": "object",
  "properties": {
    "id": { "type": "integer" },
    "name": { "type": "string" },
    "phone": { "type": "string" },
    "hobby": {
        "type": "array",
        "items": {
            "type": "string"
        }
    }
  },
  "required": ["id", "name"]
}


那么,以下数据就符合上边的schema:

[AppleScript] 纯文本查看 复制代码
{
    "id": 0,
    "name": "zhangsan",
    "phone": "18814166666",
    "hobby": ["coding", "music", "game"]
}


如果没有id或者name,或者这些字段的类型不对,这个数据就不能通过schema的校验了。

JS的JSON Schema库ajv

ajv是对JSON Schema支持最全的一个库,性能在现有的库中也很优越,排在第二位,排第一位djv没有实现JSON Schema的最新特性,而ajv与djv性能上很接近,且ajv star数6.7k,djv才236。

ajv是最优的选择。

基本用法

[AppleScript] 纯文本查看 复制代码
const Ajv = require('ajv');
const ajv = new Ajv()

const isValidate = ajv.validate({ type: 'string' }, 123);

if (!isValidate) {
    console.log(ajv.errors);
    console.log(ajv.errorsText(ajv.errors));
}



输出:

[AppleScript] 纯文本查看 复制代码
[
  {
    keyword: 'type',
    dataPath: '',
    schemaPath: '#/type',
    params: { type: 'string' },
    message: 'should be string'
  }
]
data should be string


用法简单明了,validate(schema,data),只需要指定schema和data即可,schema就是我们上面说到的schema,data就是被校验的数据了。








发表于 2021-4-29 14:53:42
讲得不错,值得认真学习,嘎嘎嘎~
使用道具 举报 回复
没想到老师声音听着很好听啊,哈哈哈哈哈哈
使用道具 举报 回复
我想知道当晚i春秋的管理员有没有加班啊,咩哈哈哈
使用道具 举报 回复
发表于 2021-4-29 14:54:32
课程很实用啊,真的可以现学现用呢,不错不错
使用道具 举报 回复
发表于 2021-4-29 14:54:49
整挺好
使用道具 举报 回复
发表于 2021-4-29 17:50:11
友情提示:药药现在还是单身!!!!!
远处传来诱人的芬芳,原来是表姐的幽香。
使用道具 举报 回复
实用的技巧,鼓励一下
使用道具 举报 回复
发新帖
您需要登录后才可以回帖 登录 | 立即注册