
1) 【一句话结论】通过数据库存储加密、传输加密(SSL)、网络防火墙及访问控制等综合措施,从数据存储、传输、访问和网络边界多维度保障学员个人信息数据库安全,确保数据在静态、动态及网络传输各环节均处于加密或受控状态。
2) 【原理/概念讲解】老师口吻解释:数据库安全的核心是“数据全生命周期防护”,包括存储、传输、访问。
3) 【对比与适用场景】
| 措施类型 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 数据库存储加密 | 对数据库中敏感数据加密存储 | 数据在磁盘为密文 | 数据库静态数据保护 | 需解密查询,影响性能 |
| 数据库传输加密(SSL) | 数据传输时加密 | 传输过程加密 | 数据传输过程保护 | 需证书验证通信双方身份 |
| 网络防火墙 | 监控控制进出网络数据流 | 逻辑访问控制 | 网络边界防护 | 规则配置需谨慎,避免冲突 |
4) 【示例】
def encrypt_data(data, key):
cipher = AES.new(key, AES.MODE_GCM)
ciphertext, tag = cipher.encrypt_and_digest(data.encode('utf-8'))
return (ciphertext, tag, cipher.nonce) # 返回加密数据、标签、nonce
def decrypt_data(ciphertext, tag, nonce, key):
cipher = AES.new(key, AES.MODE_GCM, nonce=nonce)
data = cipher.decrypt_and_verify(ciphertext, tag)
return data.decode('utf-8') # 解密后返回明文
psycopg2库,通过SSL连接PostgreSQL数据库:
import psycopg2
conn = psycopg2.connect(
dbname="job_platform",
user="user",
password="pass",
host="db_server",
port="5432",
sslmode="require", # 要求服务器提供证书
sslcert="client.crt", # 客户端证书(验证服务器)
sslkey="client.key"
)
5) 【面试口播版答案】
面试官您好,针对就业信息平台学员个人信息数据库安全,我从数据库和网络两个层面,结合加密和访问控制等手段,具体措施如下:首先,数据库层面,对存储的简历、联系方式等敏感数据采用存储加密,比如用AES-256算法加密,密钥通过密钥管理系统管理,确保数据在磁盘上是密文,即使数据库被物理访问也无法直接读取;同时,传输过程中使用SSL/TLS加密,客户端连接数据库时建立加密通道,防止数据在传输中被窃听。其次,网络层面,部署防火墙,配置访问控制规则,只允许特定IP或端口访问数据库服务器,阻止外部非法访问;另外,对数据库用户权限进行严格管理,采用最小权限原则,每个用户只能访问其需要的表或数据,避免权限滥用。这些措施从数据存储、传输、访问和网络边界多个环节保障数据安全。
6) 【追问清单】
7) 【常见坑/雷区】