Web 前端安全
Web 前端安全主要包括如下几种:
- 跨站脚本 XSS
- 跨站请求伪造 CSRF
- 界面操作劫持
- webshell
- …
1. CSRF 跨站请求伪造
它也成为 One Click Attack
,或者 Session Riding
,缩写为 CSRF,是一种对网站的恶意利用,相对来说更加难以防范。
原理
当用户正常登陆访问网站A时,网站A会给用户通过登陆验证,并产生正常访问的 Cookie
。当用户在没有退出网站A的情况下,访问了网站B(可以理解为不安全的网站),那么 B 就会要求请求访问 A 的请求,这样A 就误以为是用户发送的请求进行处理,这就实现了对用户会话劫持的目的。
防范方式
- 1,被黑客抓包,不会请求的地址,直接修改参数
- 2,加入验证码,判断 reffer,这些参数前端都是可以修改的
- 3,验证 Token 请求,每次动态刷新
- 4,强验证码 + 动态 Token 请求
2. XSS 跨站脚本攻击
恶意攻击者往 Web
页面里插入恶意 script
代码,当用户浏览该页之时,嵌入其中 web
里面的 script
代码会被执行,从而达到恶意攻击用户的目的。
类型
- 反射型:被动的非持久性XSS。诱骗用户点击短型URL,服务器解析后响应,在返回的响应内容中隐藏和嵌入攻击者的XSS代码,从而攻击用户。
- 持久型:主动提交恶意数据到服务器,当用户请求后,服务器从数据库中查询数据并发给用户收到攻击。
- DOM型:DOM 通过 html 一个结构执行事件脚本
防范方式
- 输入转义
- 输出转义
- cookie http only
- CSP:
Content-Security-Policy:default-src-self
3. webshell 网站提权渗透
它是以 asp、PHP、jsp 或者 cgj 等网页文件形式存在的一种命令执行环境,由于 webshell 其大多是以动态脚本的形式出现,也有人称之为网站的后门工具。
方式
- 利用上传文件名的漏洞来实现,比如空格、空字节、apache 的解析漏洞或者老版本的 IIS
- 利用上传文件HTTP请求伪造,比如 JavaScript 验证(禁用 JavaScript、修改后缀名)、后端检测文件头、MIME、双文件上传
防范
- 控制目录:修改上传文件名、转移上传目录
- 控制权限:让目录只读权限
4. 网页挂马与流量劫持
网页挂马指的是把一个木马程序上传到一个网站里面,然后用木马生成器生成一个网页挂马,在上传到空间里面,再加代码使得木马在打开网页时运行。
挂马方式
- iframe
- css 挂马
- JavaScript 变形
5. 其他安全问题
- cookie 安全、Flash 安全、DOM 渲染、字符集、跨域、原生态攻击、高级钓鱼、蠕虫思想等
6. 总结
我们平时开发要注意些什么?开发时要提防用户产生的内容,要对用户输入的信息进行层层检测要注意对用户的输出内容进行过滤(进行转义等)重要的内容记得要加密传输(无论是利用 https 也好,自己加密也好)。
get 与 post 请求,要严格遵守规范,不要混用,不要将一些危险的提交使用 jsonp 完成。
对于 URL 上携带的信息,要谨慎使用。心中时刻记着,自己的网站哪里可能有危险。