dmz社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 791|回复: 17

[网络安全] TL Web安全开发指南

[复制链接]
  • TA的每日心情
    奋斗
    2023-5-5 00:22
  • 签到天数: 32 天

    [LV.5]常住居民I

    307

    主题

    280

    帖子

    1284

    积分

    荣誉会员

    积分
    1284

    发表于 2022-8-8 00:00:04 | 显示全部楼层 |阅读模式

    本站资源全部免费,回复即可查看下载地址!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    1.png

    前言 .........................................................................................................................................................xv
    第一部分 制订安全计划
    第 1 章 定义应用环境 .......................................................................................................................2
    1.1 明确 Web 应用威胁 ...................................................................................................................3
    1.2 理解软件安全保障 .....................................................................................................................6
    1.2.1 考虑 OSSAP ...................................................................................................................7
    1.2.2 定义 SSA 的要求 ...........................................................................................................8
    1.2.3 对数据和资源分类 ........................................................................................................9
    1.2.4 进行必要的分析 ............................................................................................................9
    1.3 探究与语言相关的问题 ...........................................................................................................12
    1.3.1 定义 HTML 的关键问题 .............................................................................................12
    1.3.2 定义 CSS 的关键问题 .................................................................................................13
    1.3.3 定义 JavaScript 的关键问题 ........................................................................................13
    1.4 考虑端点的防御要素 ...............................................................................................................14
    1.4.1 预防安全漏洞 ..............................................................................................................14
    1.4.2 检测安全漏洞 ..............................................................................................................15
    1.4.3 修复受损的软件 ..........................................................................................................16
    1.5 处理云存储 ...............................................................................................................................16
    1.6 使用外部代码和资源 ...............................................................................................................17
    1.6.1 定义库的使用 ..............................................................................................................18
    vi | 目录
    1.6.2 定义 API 的使用 ..........................................................................................................19
    1.6.3 定义微服务的使用 ......................................................................................................20
    1.6.4 访问外部数据 ..............................................................................................................21
    1.7 允许他人访问 ...........................................................................................................................22
    第 2 章 迎合用户需求与期望........................................................................................................24
    2.1 从用户的视角看待应用程序 ...................................................................................................24
    2.2 考虑自带设备的问题 ...............................................................................................................25
    2.2.1 理解基于 Web 的应用程序的安全性 .........................................................................26
    2.2.2 考虑原生应用的问题 ..................................................................................................27
    2.2.3 使用定制化浏览器 ......................................................................................................27
    2.2.4 验证代码兼容性问题 ..................................................................................................29
    2.2.5 处理几乎连续的设备更新 ..........................................................................................31
    2.3 设计密码的可选方案 ...............................................................................................................32
    2.3.1 使用口令 ......................................................................................................................33
    2.3.2 使用生物识别的方案 ..................................................................................................33
    2.3.3 依靠钥匙卡 ..................................................................................................................35
    2.3.4 依靠 USB key ...............................................................................................................36
    2.3.5 实现令牌策略 ..............................................................................................................36
    2.4 聚焦用户期望 ...........................................................................................................................37
    2.4.1 让应用程序易于使用 ..................................................................................................37
    2.4.2 让应用程序快速运行 ..................................................................................................37
    2.4.3 创建可靠的环境 ..........................................................................................................38
    2.4.4 客观看待安全性 ..........................................................................................................38
    第 3 章 获取第三方帮助 ................................................................................................................39
    3.1 发现第三方安全解决方案 .......................................................................................................39
    3.2 考虑云安全方案 .......................................................................................................................41
    3.2.1 理解数据仓库 ..............................................................................................................42
    3.2.2 处理文件共享问题 ......................................................................................................43
    3.2.3 考虑云存储 ..................................................................................................................46
    3.3 选择产品类型 ...........................................................................................................................47
    3.3.1 使用库 ..........................................................................................................................47
    3.3.2 访问 API .......................................................................................................................48
    3.3.3 考虑微服务 ..................................................................................................................49
    目录 | vii
    第二部分 运用成功的编码实践
    第 4 章 开发成功的界面 ................................................................................................................52
    4.1 评估 UI......................................................................................................................................53
    4.1.1 创建简洁的界面 ..........................................................................................................53
    4.1.2 使界面灵活 ..................................................................................................................56
    4.1.3 提供辅助功能 ..............................................................................................................58
    4.1.4 定义可访问性问题 ......................................................................................................59
    4.2 提供受控制的选择 ...................................................................................................................61
    4.3 选择 UI 的解决方案级别 .........................................................................................................65
    4.3.1 实现标准的 HTML 控件 .............................................................................................65
    4.3.2 使用 CSS 控件 .............................................................................................................65
    4.3.3 用 JavaScript 创建控件 ................................................................................................67
    4.4 校验输入 ...................................................................................................................................68
    4.4.1 只允许特定的输入 ......................................................................................................68
    4.4.2 查找鬼祟的输入 ..........................................................................................................69
    4.4.3 请求新的输入 ..............................................................................................................69
    4.4.4 使用客户端和服务器端校验 ......................................................................................70
    4.5 期待意外 ...................................................................................................................................71
    第 5 章 构建可靠的代码 ................................................................................................................72
    5.1 区分可靠性和安全性 ...............................................................................................................73
    5.1.1 定义可靠性和安全性的角色 ......................................................................................73
    5.1.2 避免可靠代码中的安全漏洞 ......................................................................................76
    5.1.3 聚焦应用程序的功能 ..................................................................................................77
    5.2 开发团队协议 ...........................................................................................................................77
    5.3 创建经验教训的反馈回路 .......................................................................................................80
    5.4 考虑成套解决方案的问题 .......................................................................................................81
    5.4.1 处理外部库 ..................................................................................................................82
    5.4.2 处理外部 API ...............................................................................................................83
    5.4.3 使用框架 ......................................................................................................................85
    5.4.4 调用微服务 ..................................................................................................................87
    第 6 章 包含库 ..................................................................................................................................88
    6.1 考虑库的使用 ...........................................................................................................................89
    6.1.1 用库增强 CSS ..............................................................................................................89
    viii | 目录
    6.1.2 用库与 HTML 交互 .....................................................................................................91
    6.1.3 用库扩展 JavaScript .....................................................................................................93
    6.2 区分内部存储库和外部存储库 ...............................................................................................95
    6.3 定义库带来的安全威胁 ...........................................................................................................95
    6.3.1 启用严格模式 ..............................................................................................................97
    6.3.2 开发 CSP ......................................................................................................................99
    6.4 安全地包含库 .........................................................................................................................100
    6.4.1 充分研究库 ................................................................................................................101
    6.4.2 精确定义库的使用 ....................................................................................................101
    6.4.3 保持库的小规模和内容聚焦 ....................................................................................101
    6.4.4 执行必需的测试 ........................................................................................................102
    6.5 区分库和框架 .........................................................................................................................103
    第 7 章 慎用 API ............................................................................................................................105
    7.1 区分 API 和库 ........................................................................................................................106
    7.1.1 考虑流行速度上的差异 ............................................................................................106
    7.1.2 区分用法上的差异 ....................................................................................................107
    7.2 用 API 扩展 JavaScript ...........................................................................................................108
    7.2.1 定位合适的 API .........................................................................................................108
    7.2.2 创建简单示例 ............................................................................................................109
    7.3 定义 API 带来的安全威胁 ....................................................................................................113
    7.3.1 MailPoet 毁了你的好声誉 .........................................................................................113
    7.3.2 开发阅后即焚的图片 ................................................................................................114
    7.3.3 使用“找回我的 iPhone”却丢了手机 ....................................................................114
    7.3.4 Heartbleed 泄露你最重要的信息 ..............................................................................115
    7.3.5 遭受 Shellshock 攻击 .................................................................................................115
    7.4 通过 JavaScript 安全访问 API ...............................................................................................116
    7.4.1 验证 API 的安全性 ....................................................................................................116
    7.4.2 测试输入和输出 ........................................................................................................117
    7.4.3 保持数据的局部性和安全性 ....................................................................................117
    7.4.4 防御性编码 ................................................................................................................117
    第 8 章 考虑使用微服务 ..............................................................................................................118
    8.1 定义微服务 .............................................................................................................................119
    8.1.1 详述微服务的特点 ....................................................................................................119
    8.1.2 区分微服务与库 ........................................................................................................120
    8.1.3 区分微服务与 API .....................................................................................................120
    目录 | ix
    8.1.4 考虑微服务的策略 ....................................................................................................120
    8.2 用 JavaScript 调用微服务 ......................................................................................................121
    8.2.1 理解通信中 REST 的角色 .........................................................................................122
    8.2.2 用 JSON 传输数据 .....................................................................................................123
    8.2.3 用 Node.js 和 Seneca 创建微服务 .............................................................................124
    8.3 定义微服务带来的安全威胁 .................................................................................................126
    8.3.1 缺少一致性 ................................................................................................................126
    8.3.2 考虑虚拟机的角色 ....................................................................................................126
    8.3.3 使用 JSON 进行数据传输 .........................................................................................127
    8.3.4 定义传输层的安全 ....................................................................................................128
    8.4 创建可替换的微服务路径 .....................................................................................................129
    第三部分 创建有用及高效的测试策略
    第 9 章 像黑客一样思考 ..............................................................................................................132
    9.1 定义 Web 安全扫描的需求 ...................................................................................................132
    9.2 构建测试系统 .........................................................................................................................136
    9.2.1 考虑测试系统的使用 ................................................................................................136
    9.2.2 接受必需的训练 ........................................................................................................136
    9.2.3 创建正确的环境 ........................................................................................................137
    9.2.4 使用虚拟机 ................................................................................................................137
    9.2.5 获取工具 ....................................................................................................................138
    9.2.6 配置系统 ....................................................................................................................138
    9.2.7 恢复系统 ....................................................................................................................139
    9.3 定义最常见的漏洞源 .............................................................................................................139
    9.3.1 避免 SQL 注入攻击 ...................................................................................................140
    9.3.2 理解跨站脚本攻击 ....................................................................................................141
    9.3.3 解决拒绝服务攻击问题 ............................................................................................142
    9.3.4 去除可预测的资源定位 ............................................................................................142
    9.3.5 克服无意的信息泄露 ................................................................................................143
    9.4 在 BYOD 环境中进行测试....................................................................................................143
    9.4.1 配置远程访问区域 ....................................................................................................144
    9.4.2 检查跨应用程序的攻击 ............................................................................................144
    9.4.3 处理真正古老的设备和软件 ....................................................................................145
    9.5 依靠用户测试 .........................................................................................................................145
    x | 目录
    9.5.1 让用户横冲直撞 ........................................................................................................146
    9.5.2 开发可重现的步骤 ....................................................................................................147
    9.5.3 让用户发声 ................................................................................................................147
    9.6 使用外部的安全测试人员 .....................................................................................................148
    9.6.1 考虑渗透测试公司 ....................................................................................................148
    9.6.2 管理项目 ....................................................................................................................149
    9.6.3 覆盖要点 ....................................................................................................................149
    9.6.4 获取报告 ....................................................................................................................149
    第 10 章 创建 API 安全区域 .......................................................................................................151
    10.1 理解 API 安全区域的概念 ..................................................................................................152
    10.2 定义 API 安全区域的需求 ..................................................................................................153
    10.2.1 确保 API 可以工作 ................................................................................................153
    10.2.2 实现快速开发 .........................................................................................................153
    10.2.3 证明最佳的集成 .....................................................................................................154
    10.2.4 在负载情况下验证 API 的表现 ............................................................................158
    10.2.5 使 API 远离黑客 ....................................................................................................159
    10.3 用 API 沙盒进行开发 ..........................................................................................................159
    10.3.1 使用现成的解决方案 .............................................................................................161
    10.3.2 使用其他供应商的沙盒 .........................................................................................162
    10.4 考虑虚拟环境 .......................................................................................................................164
    10.4.1 定义虚拟环境 .........................................................................................................164
    10.4.2 区分虚拟环境和沙盒 .............................................................................................164
    10.4.3 实现虚拟化 .............................................................................................................165
    10.4.4 依靠应用程序虚拟化 .............................................................................................165
    第 11 章 检查库和 API 的漏洞 ...................................................................................................167
    11.1 创建测试计划 .......................................................................................................................168
    11.1.1 考虑目的和目标 .....................................................................................................168
    11.1.2 测试内部库 .............................................................................................................175
    11.1.3 测试内部 API ..........................................................................................................175
    11.1.4 测试外部库 .............................................................................................................175
    11.1.5 测试外部 API ..........................................................................................................176
    11.1.6 扩展测试到微服务 .................................................................................................176
    11.2 单独测试库和 API ...............................................................................................................177
    11.2.1 为库创建测试框架 .................................................................................................177
    目录 | xi
    11.2.2 为 API 创建测试脚本 .............................................................................................178
    11.2.3 将测试策略扩展到微服务 .....................................................................................178
    11.2.4 开发响应策略 .........................................................................................................178
    11.3 执行集成测试 .......................................................................................................................179
    11.4 测试与语言相关的问题 .......................................................................................................180
    11.4.1 设计针对 HTML 问题的测试 ................................................................................180
    11.4.2 设计针对 CSS 问题的测试 ....................................................................................181
    11.4.3 设计针对 JavaScript 问题的测试 ..........................................................................181
    第 12 章 使用第三方测试 ............................................................................................................184
    12.1 找到第三方测试服务 ...........................................................................................................185
    12.1.1 定义聘请第三方的理由 .........................................................................................185
    12.1.2 考虑测试服务的范围 .............................................................................................186
    12.1.3 确保第三方是合法的 .............................................................................................188
    12.1.4 面试第三方 .............................................................................................................188
    12.1.5 对测试的搭建进行测试 .........................................................................................188
    12.2 创建测试计划 .......................................................................................................................189
    12.2.1 指明第三方在测试中的目的 .................................................................................189
    12.2.2 创建书面的测试计划 .............................................................................................189
    12.2.3 枚举测试输出和报告的要求 .................................................................................190
    12.2.4 考虑测试需求 .........................................................................................................190
    12.3 实施测试计划 .......................................................................................................................190
    12.3.1 确定公司参与测试的程度 .....................................................................................191
    12.3.2 开始测试过程 .........................................................................................................191
    12.3.3 执行必需的测试监控 .............................................................................................191
    12.3.4 处理意外的测试问题 .............................................................................................192
    12.4 使用结果报告 .......................................................................................................................192
    12.4.1 与第三方讨论报告输出 .........................................................................................192
    12.4.2 向公司展示报告 .....................................................................................................193
    12.4.3 根据测试建议采取行动 .........................................................................................193
    第四部分 实现维护周期
    第 13 章 明确定义升级周期 .......................................................................................................196
    13.1 制订详细的升级周期计划 ...................................................................................................196
    xii | 目录
    13.1.1 寻找升级 .................................................................................................................198
    13.1.2 确定升级的要求 .....................................................................................................198
    13.1.3 定义升级的临界点 .................................................................................................200
    13.1.4 检查升级的问题 .....................................................................................................201
    13.1.5 创建测试场景 .........................................................................................................202
    13.1.6 实施变更 .................................................................................................................203
    13.2 制订升级测试计划 ...............................................................................................................203
    13.2.1 执行所需的预测试 .................................................................................................204
    13.2.2 执行所需的集成测试 .............................................................................................204
    13.3 将升级移到生产环境 ...........................................................................................................205
    第 14 章 考虑更新选项 ................................................................................................................207
    14.1 区分升级和更新 ...................................................................................................................208
    14.2 确定何时更新 .......................................................................................................................209
    14.2.1 处理库的更新 .........................................................................................................209
    14.2.2 处理 API 和微服务的更新 ....................................................................................210
    14.2.3 接受自动更新 .........................................................................................................211
    14.3 更新语言套件 .......................................................................................................................212
    14.3.1 创建语言支持清单 .................................................................................................212
    14.3.2 获得可靠的语言专家 .............................................................................................213
    14.3.3 验证与语言相关的提示符能否在应用程序中起效 .............................................214
    14.3.4 确保数据以正确的格式呈现 .................................................................................214
    14.3.5 定义语言支持测试的特殊要求 .............................................................................214
    14.4 执行紧急更新 .......................................................................................................................215
    14.4.1 尽可能避免紧急情况 .............................................................................................215
    14.4.2 组建快速响应团队 .................................................................................................215
    14.4.3 执行简化的测试 .....................................................................................................216
    14.4.4 制订持久的更新计划 .............................................................................................216
    14.5 制订更新测试计划 ...............................................................................................................216
    第 15 章 考虑报告的需要 ............................................................................................................218
    15.1 使用报告以做出改变 ...........................................................................................................219
    15.1.1 避免无用的报告 .....................................................................................................219
    15.1.2 安排时间为升级和更新做出报告 .........................................................................220
    15.1.3 使用自动生成的报告 .............................................................................................221
    15.1.4 使用定制的报告 .....................................................................................................221
    目录 | xiii
    15.1.5 创建一致的报告 .....................................................................................................222
    15.1.6 使用报告执行特定的应用任务 .............................................................................223
    15.2 创建内部报告 .......................................................................................................................223
    15.2.1 确定使用哪些数据源 .............................................................................................223
    15.2.2 指定报告的使用 .....................................................................................................224
    15.3 依靠外部生成的报告 ...........................................................................................................225
    15.3.1 从第三方获取完整的报告 .....................................................................................225
    15.3.2 从原始数据创建报告 .............................................................................................225
    15.3.3 保持内部数据安全 .................................................................................................225
    15.4 提供用户反馈 .......................................................................................................................226
    15.4.1 获取用户反馈 .........................................................................................................226
    15.4.2 确定用户反馈的可用性 .........................................................................................227
    第五部分 查找安全资源
    第 16 章 跟踪当前的安全威胁 ...................................................................................................230
    16.1 发现安全威胁信息的来源 ...................................................................................................231
    16.1.1 阅读与安全相关的专业文章 .................................................................................231
    16.1.2 查看安全网站 .........................................................................................................232
    16.1.3 获取顾问的意见 .....................................................................................................234
    16.2 避免信息泛滥 .......................................................................................................................235
    16.3 为基于威胁的升级制订计划 ...............................................................................................236
    16.3.1 预判不需要采取任何行动的情况 .........................................................................236
    16.3.2 决定升级还是更新 .................................................................................................236
    16.3.3 定义升级计划 .........................................................................................................238
    16.4 为基于威胁的更新制订计划 ...............................................................................................238
    16.4.1 验证更新是否可解决威胁 .....................................................................................239
    16.4.2 确定威胁是否紧急 .................................................................................................240
    16.4.3 定义更新计划 .........................................................................................................240
    16.4.4 要求来自第三方的更新 .........................................................................................240
    第 17 章 获取必需的培训 ............................................................................................................241
    17.1 制订内部的安全培训计划 ...................................................................................................242
    17.1.1 定义所需的培训 .....................................................................................................242
    17.1.2 设置合理的目标 .....................................................................................................243
    xiv | 目录
    17.1.3 使用内部培训师 .....................................................................................................243
    17.1.4 监控结果 .................................................................................................................244
    17.2 获取第三方对开发人员的培训 ...........................................................................................245
    17.2.1 指定培训的要求 .....................................................................................................246
    17.2.2 为公司聘请第三方培训师 .....................................................................................247
    17.2.3 使用在线学校 .........................................................................................................247
    17.2.4 依靠培训中心 .........................................................................................................248
    17.2.5 利用本地的学院和大学 .........................................................................................248
    17.3 确保用户有安全意识 ...........................................................................................................249
    17.3.1 制定专门的安全培训 .............................................................................................249
    17.3.2 结合书面指南进行培训 .........................................................................................249
    17.3.3 创建并使用替代的安全提醒 .................................................................................250
    17.3.4 进行培训有效性检查 .............................................................................................250
    关于作者 ..............................................................................................................................................251
    关于封面 ..............................................................................................................................................251
    版权声明 ..............................................................................................................................................252


    游客,如果您要查看本帖隐藏内容请回复

    温馨提示:
    1、本站所有内容均为互联网收集或网友分享或网络购买,本站不破解、不翻录任何视频!
    2、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意!
    3、本站资源仅供本站会员学习参考,不得传播及用于其他用途,学习完后请在24小时内自行删除.
    4、本站资源质量虽均经精心审查,但也难保万无一失,若发现资源有问题影响学习请一定及时点此进行问题反馈,我们会第一时间改正!
    5、若发现链接失效了请联系管理员,管理员会在2小时内修复
    6、如果有任何疑问,请加客服QQ:1300822626 2小时内回复你!
    回复

    使用道具 举报

  • TA的每日心情
    开心
    7 小时前
  • 签到天数: 1072 天

    [LV.10]以坛为家III

    1

    主题

    4175

    帖子

    1万

    积分

    超凡入圣

    Rank: 10Rank: 10Rank: 10

    积分
    11253

    发表于 2022-8-8 00:53:12 | 显示全部楼层
    确实是难得好帖啊,顶先
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-10-23 10:32
  • 签到天数: 322 天

    [LV.8]以坛为家I

    1

    主题

    1310

    帖子

    3675

    积分

    傲视群雄

    Rank: 8Rank: 8

    积分
    3675

    发表于 2022-8-8 06:30:56 | 显示全部楼层
    啥也不说了,感谢楼主分享哇!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 03:04
  • 签到天数: 943 天

    [LV.10]以坛为家III

    1

    主题

    2235

    帖子

    7009

    积分

    深不可测

    Rank: 9Rank: 9Rank: 9

    积分
    7009

    发表于 2022-8-8 07:08:00 | 显示全部楼层
    啥也不说了,感谢楼主分享哇!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    3 天前
  • 签到天数: 797 天

    [LV.10]以坛为家III

    1

    主题

    4258

    帖子

    1万

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    10605

    发表于 2022-8-8 08:37:20 | 显示全部楼层
    啥也不说了,感谢楼主分享哇!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    昨天 10:11
  • 签到天数: 915 天

    [LV.10]以坛为家III

    0

    主题

    1177

    帖子

    4845

    积分

    傲视群雄

    Rank: 8Rank: 8

    积分
    4845

    发表于 2022-8-8 09:14:35 | 显示全部楼层
    正需要,支持楼主大人了!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    昨天 09:29
  • 签到天数: 1098 天

    [LV.10]以坛为家III

    0

    主题

    1632

    帖子

    6448

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    6448

    发表于 2022-8-8 10:27:03 | 显示全部楼层
    啥也不说了,感谢楼主分享哇!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 251 天

    [LV.8]以坛为家I

    0

    主题

    405

    帖子

    1451

    积分

    一代宗师

    Rank: 7Rank: 7Rank: 7

    积分
    1451

    发表于 2022-8-8 11:39:25 | 显示全部楼层
    回的人少,我来小顶一下
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:54
  • 签到天数: 611 天

    [LV.9]以坛为家II

    0

    主题

    3114

    帖子

    8036

    积分

    超凡入圣

    Rank: 10Rank: 10Rank: 10

    积分
    8036

    发表于 2022-8-8 11:40:11 | 显示全部楼层
    啥也不说了,感谢楼主分享哇!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 16:27
  • 签到天数: 738 天

    [LV.9]以坛为家II

    0

    主题

    2163

    帖子

    6235

    积分

    深不可测

    Rank: 9Rank: 9Rank: 9

    积分
    6235

    发表于 2022-8-8 15:08:46 | 显示全部楼层
    啥也不说了,感谢楼主分享哇!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|小黑屋|本站代理|dmz社区

    GMT+8, 2024-4-29 07:56 , Processed in 0.103861 second(s), 41 queries .

    Powered by Discuz! X3.4 Licensed

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表