1. 文档
网络验证客户端
  • 网络验证安装文档
  • 文档
    • 系统使用文档
    • 接口文档
    • 错误码列表
    • 参数加密
    • 签名与验签
    • 使用云函数
  • 单码应用业务接口
    • 单码登录接口
      GET
    • 取单码信息(未登录)
      GET
    • 取单码信息(已登录)
      GET
    • 单码解绑
      GET
    • 执行云函数(已登录)
      GET
    • 修改绑定信息(已登录)
      GET
    • 单码心跳接口(已登录)
      GET
  • 账户密码应用业务接口
    • 用户注册
      GET
    • 用户充值
      GET
    • 用户登录
      GET
    • 取账户信息(未登录)
      GET
    • 用户解绑
      GET
    • 用户心跳接口(已登录)
      GET
    • 修改密码(未登录)
      GET
    • 修补绑定信息(已登录)
      GET
  • 公共接口
    • 取单码/账户的绑定值
      GET
    • 取程序公告
      GET
    • 取程序简介
      GET
    • 退出登录
      GET
    • 取程序版本更新
      GET
    • 下载文件接口
      GET
  1. 文档

使用云函数

云函数中缺少输出型方法
例如console.log()

使用云函数#

基础示例#

自定义参数示例#

多个自定义参数示例#

使用云函数SQL#

特别注意
您要 特别,非常,必须 注意SQL注入问题,由于SQL语句是由 Js 传入,无法保证是否存在SQL注入(Js无法实现SQL预编译)

SQL被注入案例#

假定你的云函数是这样的,客户端可能通过抓包的方式将cardId 传入改为字符串 '1 or 1 = 1'
此时您拼接成的SQL语句即为
若服务器执行该语句则您所有的卡密将被全部禁用...

应对方案#

虽然Js无法实现预编译,但是我们可以通过一些正则或其他方式校验参数是否合法
例如上方的 SQL被注入案例 ,我们就可以将云函数修改为
当然此处的应对方案仅是对数字的防御,您需要更多更强大的SQL注入库来检查

使用预置参数示例#

💡
Q:何为预置参数?
A:预置参数即为我们提前给您解析好的参数并且内置于js参数中,效果等同于您传入的cloud_params
Q:预置参数如何使用?
A:预置参数包括 cardId ,当您想要获取一些信息的时候可以直接使用预置参数,更加安全
例如:若您想要禁用某张卡密,可以结合到上方示例的 云函数SQL ,同时 cardId 通过 预置参数获得,将更加安全,如果 cardId 由客户端传入,可能造成抓包传入错误的 cardId 的风险和安全隐患
Q:系统是如何获取预置参数的?
A:系统通过解析云函数接口传入的 token 在token内获取到cardId,这样的方式比使用客户端传入的cardId要更加安全

当前可用的预置参数#

参数名参数释义
cardId若您为单码应用则此处为单码的ID
userId若您为账户密码应用则此处为用户的ID

传参与预置参冲突#

例如您传入的cloud_params=cardId=1
但系统预置参 也有cardId
此处会使用系统预置参
即系统预置参的等级比传入参优先级高
修改于 2024-10-04 12:27:21
上一页
签名与验签
下一页
单码登录接口
Built with