Skip to content

API for querying big data of broken personal data

Notifications You must be signed in to change notification settings

repoog/PassPwned

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

功能描述

PassPwned 是一个用于查询社工库的API接口,该接口基于MySQL数据库并使用PHP开发,接口包括:

  • 查询社工库站点/数据量/接口调用统计;
  • 查询基于关键词的站点信息;
  • 查询基于关键词的数据详细信息; 接口根据参数自动识别参数类型进行查询,返回采用Json格式,用于同域站点下的接口调用和访问。

接口使用

/initialize.php 创建基础表结构。 /api/datainfo 获取表数量、总数据量及调用次数。 /api/leakaccount/?account= 根据account查询所有表命中情况,但不显示详细记录。 /api/socialdata/?account= 根据account查询所有表命中情况,并显示详细记录。

接口设计

PassPwned 基于MySQL数据库设计,采用统一的表前缀,表类型分为站点数据表和基础表。 其中site_index、site_item、api_call为默认基础表,表说明如下:

  • site_index:站点信息及表信息索引表;
  • site_item:站点数据表字段记录表;
  • api_call:接口调用统计表; 接口实现依赖于基础表的构建,否则会造成接口查询错误。

接口配置

config.php 为接口配置文件,其中可配置的内容包括:

  • 数据库连接信息
  • 表前缀信息(默认为sod_)
  • 基础表表名信息

设计思路

PassPwned 基于统一字段(即所有分表同类型字段字段名统一)和分表设计,并使用基础表作为索引查询依据,即查询时基于参数类型从基础表site_item中确认数据来源以及数据表名,继而查询同类型下所有数据表信息。

若有新数据源添加,仅需在导入数据后自定义分表表名,添加site_index记录并增加site_item记录说明字段是否存在即可(新的字段亦需增加表字段)。

基础表结构

在接口配置文件config.php配置之后,可使用php -f initialize.php创建以下基础表。

sod_site_index

CREATE TABLE `sod_site_index` (
  s_id int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '站点ID',
  table_name varchar(50) NOT NULL COMMENT '站点表名',
  site_name varchar(20) NOT NULL COMMENT '站点名称',
  site_url varchar(30) DEFAULT NULL COMMENT '站点链接',
  site_info varchar(100) DEFAULT NULL COMMENT '站点信息',
  data_amount bigint(15) NOT NULL DEFAULT '0' COMMENT '数据量'
)

sod_site_item

CREATE TABLE `sod_site_item` (
  s_id int(10) NOT NULL COMMENT '站点ID',
  username_item tinyint(1) NOT NULL DEFAULT '0' COMMENT '用户名字段',
  password_item tinyint(1) NOT NULL DEFAULT '0' COMMENT '密文密码字段',
  email_item tinyint(1) NOT NULL DEFAULT '0' COMMENT '邮箱字段',
  salt_item tinyint(1) NOT NULL DEFAULT '0' COMMENT '盐值字段',
  ip_item tinyint(1) NOT NULL DEFAULT '0' COMMENT 'IP字段',
  question_item tinyint(1) NOT NULL DEFAULT '0' COMMENT '问题字段',
  answer_item tinyint(1) NOT NULL DEFAULT '0' COMMENT '回答字段',
  plainpass_item tinyint(1) NOT NULL DEFAULT '0' COMMENT '明文密码字段',
  mobile_item tinyint(1) NOT NULL DEFAULT '0' COMMENT '手机字段',
  realname_item tinyint(1) NOT NULL DEFAULT '0' COMMENT '真实姓名字段',
  sex_item tinyint(1) NOT NULL DEFAULT '0' COMMENT '性别字段',
  qq_item tinyint(1) NOT NULL DEFAULT '0' COMMENT 'QQ字段',
  birthday_item tinyint(1) NOT NULL DEFAULT '0' COMMENT '生日字段',
  idcard_item tinyint(1) NOT NULL DEFAULT '0' COMMENT '身份证字段',
  address_item tinyint(1) NOT NULL DEFAULT '0' COMMENT '住址字段',
  university_item tinyint(1) NOT NULL DEFAULT '0' COMMENT '大学字段',
  education_item tinyint(1) NOT NULL DEFAULT '0' COMMENT '学历字段',
  company_item tinyint(1) NOT NULL DEFAULT '0' COMMENT '公司字段',
  post_item tinyint(1) NOT NULL DEFAULT '0' COMMENT '职位字段',
  phone_item tinyint(1) NOT NULL DEFAULT '0' COMMENT '座机字段',
  account_item tinyint(1) NOT NULL DEFAULT '0' COMMENT '账户字段',
  nickname_item tinyint(1) NOT NULL DEFAULT '0' COMMENT '昵称字段'
)

sod_api_call

CREATE TABLE `sod_api_call` (
  id int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
  count bigint(10) NOT NULL
)

About

API for querying big data of broken personal data

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages