10.4. 系统安全
系统安全
对于一个电商系统来说,安全性是一个很重要的指标,因为涉及到金钱交易,如果出现重大安全漏洞可能导致经济上的损失。
本章节将要介绍网站的常见漏洞类型及原理,以及对我们的电商系统的安全检查。
1. SQL 注入漏洞
SQL 注入是最古老、最流行同样也是危害最大的漏洞之一,这个漏洞的核心就一句话:将未经过滤的用户输入拼接到 SQL 语句中。
举个例子:
$product = DB::select("select * from products where id = '".$_GET['id']."'");
这个时候用户提交的 id
如果是 1 and 1 = 2
,那么最终被执行的 SQL 就是
select * from products where id = 1 and 1 = 2
很明显这个 SQL 查出来的结果必然为空,那么页面就会显示该商品不存在。
但仅仅是这样感觉好像没有什么危害,那这个时候攻击者提交的 id
参数变成了:
1 and exists (select * from admins where name = 'admin')
...