API使用指南

简介

本文档用于描述NOSEC安全协作平台API使用方法,考虑到环境兼容性的问题,建议在Linux环境运行,当然Windows下面大多数也可以运行,本页实例部分的curl请另行安装。

输入必须包含认证信息,见 认证 一节。

输出格式为json,正常情况下都在data字段,错误情况见 错误和异常 一节。


  curl https://nosec.org/api

认证

所有的调用都将需要提供身份信息,主要是 email 和 key :

  • email: 注册和登陆时时填写的email
  • key: 登陆到后台后能看到这个key,是32位的hash值
  • 
      curl https://nosec.org/api/version?email=this_is_testmail@nosec.org&key=32bitmd5
    
    
      NOSEC::version()
    
      NOSEC::version()
    
      NOSEC::version()
    
      {"data":"2015-10-15 22:05:54 +0800","error":false}
    
    

    查询接口

    所有数据查询都在这里

    查询网站接口

    输入 qbase64,返回json数据格式

    请求

    qbase64 :
    string 经过base64编码后的查询语法,支持domain,host,ip,header,body,title,运算符支持== = != =~
    page :
    integer 翻页数,默认第一页。每页显示1000条纪录

    返回

    query :
    string 请求的查询语法
    data :
    array 数组,每一个元素就是一个host
    
      echo 'domain=="nosec.org"' | base64 - | xargs -I{} curl 'https://nosec.org/api/host?email=this_is_testmail@nosec.org&key=32bitmd5&qbase64={}'
    
    NOSEC::Host.query(
      :query => 'domain=="nosec.org"',
      :page => 1
      )
    nosec.Host.query(
      query='domain=="nosec.org"',
      page=1
      )
    
    
    
      # 正确返回结果
      {
      "query":"domain==\"nosec.org\"",
      "data":["down3.nosec.org","cdn.nosec.org","www.nosec.org"],
      "error":false
    }
    
      #错误返回
      {"error":true,"errmsg":"语法错误,请确认格式是否正确!","query":"test"}
    
    

    查询URL接口

    输入 domain,返回json数据格式

    请求

    q :
    string 根域名或者子域名,如nosec.org,www.nosec.org
    page :
    integer 翻页数,默认第一页。每页显示1000条纪录

    返回

    query :
    string 请求的查询语法
    data :
    array 数组,每一个元素就是一个URL
    
      curl 'https://nosec.org/api/url?email=this_is_testmail@nosec.org&key=32bitmd5&q=nosec.org&page=1'
    
    NOSEC::Url.query(
      :query => 'nosec.org',
      :page => 1
      )
    nosec.Url.query(
      query='nosec.org',
      page=1
      )
    
    
    
      # 正确返回结果
      {
      "query":"nosec.org",
      "data":[
            "http://www.nosec.org/2010/0809/629.html",
            "http://www.nosec.org/product/upgrade.php?product=pangolin\u0026version=2.5.2.975\u0026hash=\u0026edition=free"
      ],
      "error":false
    }
    
      #错误返回
      {"error":true,"errmsg":"参数错误!","query":""}
    
    

    查询Email接口

    输入 domain,返回json数据格式

    请求

    q :
    string 根域名,如nosec.org
    page :
    integer 翻页数,默认第一页。每页显示1000条纪录

    返回

    query :
    string 请求的查询语法
    data :
    array 数组,每一个元素就是一个email
    
      curl 'https://nosec.org/api/email?email=this_is_testmail@nosec.org&key=32bitmd5&q=nosec.org&page=1'
    
    NOSEC::Email.query(
      :query => 'nosec.org',
      :page => 1
      )
    nosec.Email.query(
      query='nosec.org',
      page=1
      )
    
    
    
      # 正确返回结果
      {
      "query":"nosec.org",
      "data":[
      "hacker@nosec.org",
      "support@nosec.org"
      ],
      "error":false
      }
    
      #错误返回
      {"error":true,"errmsg":"参数错误!","query":""}
    
    

    查询DNS接口

    输入 domain,返回json数据格式的DNS记录信息

    请求

    q :
    string 根域名,如baidu.com
    page :
    integer 翻页数,默认第一页。每页显示1000条纪录

    返回

    query :
    string 请求的查询语法
    data :
    array 二维数组,每一个子数组就是一条DNS记录信息(HOST、类型、值)
    
      curl 'https://nosec.org/api/dns?email=this_is_testmail@nosec.org&key=32bitmd5&q=baidu.com&page=1'
    
    NOSEC::Dns.query(
      :query => 'baidu.com',
      :page => 1
      )
    nosec.Dns.query(
      query='baidu.com',
      page=1
      )
    
    
    
      # 正确返回结果
      {
      "query":"nosec.org",
      "data":[
      {"host": "site.baidu.com", "type" : "a", "value": "180.149.132.3"},
      {"host": "cang.baidu.com", "type" : "a", "value": "180.149.132.12"}
      ],
      "error":false
      }
    
      #错误返回
      {"error":true,"errmsg":"参数错误!","query":""}
    
    

    查询ICP备案数据接口

    输入 domain/单位名称/备案编号,返回json数据格式的ICP信息

    请求

    q :
    string 支持如下几种查询类型:
    根域名:如baidu.com
    单位名称:如北京百度网讯科技有限公司
    备案编号:如京ICP证030173号
    page :
    integer 翻页数,默认第一页。每页显示1000条纪录

    返回

    query :
    string 请求的查询语法
    data :
    array 二维数组,每一个子数组就是一条ICP信息(域名、ICP备案号、企业名称)
    
      curl 'https://nosec.org/api/icp?email=this_is_testmail@nosec.org&key=32bitmd5&q=baidu.com&page=1'
    
    NOSEC::Icp.query(
      :query => 'baidu.com',
      :page => 1
      )
    nosec.Icp.query(
      query='baidu.com',
      page=1
      )
    
    
    
      # 正确返回结果
      {
      "query":"nosec.org",
      "data":[
      ["baidu.com", "京ICP证030173号-1", "北京百度网讯科技有限公司"]
      ],
      "error":false
      }
    
      #错误返回
      {"error":true,"errmsg":"参数错误!","query":""}
    
    

    错误和异常

    任何程序都不可避免出现异常情况,请随时关注可能提示的错误信息。

    Attributes

    error:
    boolean 是否发生错误
    errmsg:
    string 错误提示信息
    
      {
      "error": true,
      "errmsg":"用户认证失败,请确认email和key配置正确。API KEY请登录到管理后台获取!"
      }
    
    

    用户协议

    1、定义
            1.1 NOSEC API开放接口是由北京白帽汇科技有限公司(以下简称白帽汇)提供技术标准;
            1.2 NOSEC API开放接口所有权归北京白帽汇科技有限公司所有。

    2、使用许可
            2.1 用户使用NOSEC API数据接口,应遵守被协议的约定及法律、法规之相关规定;
            2.2 用户在使用NOSEC API数据接口时,如有恶意使用及使用不当,后果由用户自身承担;
            2.3 用户不得对所提供的数据内容做出任何修改;
            2.4 白帽汇向用户提供API使用的相应技术支持,用户需按照白帽汇所提供的《操作说明》进行;
            2.5 用户在获得使用权时,有权根据自身的实际应用场景使用。

    3、保密内容及范围
            3.1 双方不得在未经对方允许情况下披露给其他个人或单位信息;
            3.2 用户不得像其他单位及个人提供使用NOSEC API时必须的相关授权密钥,一经发现可马上终止本协议。