共计 1254 个字符,预计需要花费 4 分钟才能阅读完成。
最近在学习 web 安全相关的一些知识,目前对 web 安全也只有了一些浅显的理解,下面记录我的一些理解。因为对这一块懂的东西不是很多,有些地方可能写的不对或者不够全,所以欢迎大家给点问题和建议。
目前只看了三种攻击方式一.XSS 跨站脚本攻击二.sql 注入三.CSRF 跨站请求伪造
一.XSS 跨站脚本攻击
反射型 XSS 攻击此种攻击通俗点讲,就是在用户输入的地方,输入一些恶意的脚本,通常是 textarea,然后通过某种方式立即执行,然后获取到一些想要得到的信息,比如 cookie 等,然后发送到自己的服务器。(没有想到具体哪些案例会立即执行)此种攻击的解决方案一般是在用户输入的地方做一些过滤,过滤掉这一部分恶意脚本。存储型 XSS 攻击此种攻击通俗点讲,就是在用户输入的地方,输入一些恶意的脚本,通常是富文本编辑器或者 textarea 等地方,然后在读取富文本的时候,如果没有做过滤和限制,就会直接执行用户输入的恶意脚本。存储型说的就是数据会存储到服务器或者数据库。此种攻击的解决方案和上面一样,在用户输入的地方做一些过滤,过滤掉这一部分恶意脚本。dom 型 XSS 攻击 dom 型 XSS 攻击也是在用户输入的地方输入一些脚本,不同的是这个脚本可能直接就在客户端执行,不经过服务器。
xss 攻击基本是在用户输入的地方输入一些恶意脚本,已达到以下的目的:
获取 cookie 等一些重要的信息
插入一些 js 或者 css 修改和破坏页面结构
执行某段 js,使页面跳转到其他页面
基本的防御方法就是在用户输入的地方或者显示的地方:
过滤危险节点,如 script,style,link,iframe 等
过滤一些危险的属性,如 href,src 等
对 cookie 设置 httpOnly
二.CSRF 攻击
关于 CSRF 攻击的知识,我是看了这篇博客的 Web 安全之 CSRF 攻击,个人觉得这篇文章还不错,简单清晰明了。我个人感觉 CSRF 攻击和 XSS 攻击有点类似,也是在用户输入的地方输入一些脚本,比如一个图片,在图片的 src 里加上某个地址,当页面再次载入这个输入的内容的时候,就会发送请求,从而达到某种目的。CSRF 攻击和 xss 有点类似,不一样的是,CSRF 冒充用户在站内做一些正常的操作,如关注某个人等,而 XSS 则是获取一些信息,做一些恶意的操作等,其实具体的区别我也不是很理解,有机会的话再继续深入探究一下。防御 CSRF 攻击的方法主要是:
修改数据的接口,尽量使用 post 请求
使用 cookie 同源策略
推荐的文章 Web 安全之 CSRF 攻击其实还讲了其他的几种方法,但是都没接触过,不太理解,所以没有写下来。
三.SQL 注入
我之前写过一个获取微信小程序码的接口,该接口对外开放没有做任何限制,然后根据一些参数创建文件夹和文件名等信息,发现经常会有一些 SELECT 开头的文件夹和文件,SQL 注入应该就是传入的参数里面带有 SQL 语句,后面我加了一些过滤和判断就没有出现过了。防御的主要措施就是:
对用户输入的内容进行校验和过滤
不要动态拼接 SQL 语句
不要使用管理员权限连接数据库
敏感字段要进行 MD5 加密