之前出去面试的时候, 经常会被问到一些安全方面的问题。安全涉及的领域很大, 我也仅仅是了解一些皮毛, 每次面试前都要找资料复习, 很麻烦。所以我就根据之前搜集的一些资料和面试的经验,系统的梳理了一下,希望对大家有所帮助。
首先简单介绍几种常见的攻击方式:
1、SQL注入
2、XSS
3、CSRF
4、点击劫持
5、中间人攻击
1. SQL 注入
这是一种比较简单的攻击方式。
如果后台人员使用用户输入的数据来组装SQL查询语句的时候不做防范, 遇到一些恶意的输入, 最后生成的SQL就会有问题。
比如地址栏输入的是:
articlrs/index.php?id=1
发送一个get请求, 调用的查询语句是:
sql = "SELECT * FROM articles WHERE id =", $id
正常情况下, 返回 id = 1 的文章。
如果攻击者想获得所有的文章,语句就可以改成:
articlrs/index.php?id=-1 OR 1 = 1
这样就可以了, 为什么呢?
这是因为,id = -1 永远是 false,1=1 永远是true,所有整个where语句永远是ture.
所以 where 条件相当于没有加where条件,那么查询的结果相当于整张表的内容,攻击者就达到了目的。
现在的系统一般都会加入 过滤 和 验证 机制, 可以有效预防SQL注入问题。
XSS 全称是跨站脚本攻击
。
通过代码注入
的方式来达到攻击的目的。
我们有个社交网站,允许大家相互访问空间,网站可能是这样做的:
The above is the detailed content of Common web security interview questions (share). For more information, please follow other related articles on the PHP Chinese website!