熟悉面试中常见的的 web 安全问题
背景 之前出去面试的时候, 经常会被问到一些安全方面的问题。 安全涉及的领域很大, 我也仅仅是了解一些皮毛, 每次面试前都要找资料复习, 很麻烦。 所以我就根据之前搜集的一些资料和面试的经验,系统的梳理了一下,希望对大家有所帮助。 正文 首先简单介绍几种常见的攻击方式: SQL注入 XSS CSRF 点击劫持 中间人攻击 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注入问题。 2. XSS