数据库安全:多租户与注入防护全解析
1. 多租户数据分离范式
在许多同时为多个客户端服务的Web应用中,需要安全地分离客户端数据,以防止他们访问彼此的数据。常见的多租户数据分离方法有以下几种:
| 方法 | 描述 | 优点 | 缺点 |
| — | — | — | — |
| 完全隔离数据库 | 每个客户端拥有独立的数据库,可自定义数据结构 | 安全性高,客户端可定制数据结构 | 基础设施成本高,占用服务器空间大 |
| 同一数据库,分离模式 | 使用同一数据库,但为每个客户端分离表或集合 | 各租户可定制数据结构,连接级别分离 | 备份困难,MongoDB无法充分使用该方法 |
| 共享数据库和模式 | 将所有客户端数据存储在同一数据库,通过唯一租户标识符分离数据 | 基础设施成本低 | 安全实现成本高,需自行处理安全和数据分离机制 |
一般来说,大多数应用从共享模式开始,随着业务发展,可考虑过渡到隔离模式。
2. 识别数据库注入点
数据库注入是一种针对后端数据库的攻击方式。攻击者通过在应用输入字段输入数据库命令,若应用未正确验证输入、未使用合适的ORM且未正确转义输入数据,攻击者就能成功执行恶意命令。
以下是一个存在数据库注入漏洞的示例代码:
var mysql = require('mysql');
var express = require('express');
var args = require('minimist')(process.argv);
if(!args.u || !arg
超级会员免费看
订阅专栏 解锁全文
71

被折叠的 条评论
为什么被折叠?



