Web 开发常见安全问题

参考:https://blog.csdn.net/fengyinchao/article/details/50775121  或  https://my.oschina.net/zhangstephen/blog/645011#OSC_h3_1

 常见前端安全问题:

1、XSS攻击 (跨站脚本攻击):https://blog.csdn.net/liningaa/article/details/79512649?utm_source=blogxgwz5 (包括解决方案) 或  https://www.cnblogs.com/anic/archive/2012/07/12/2588812.html(图解xss攻击)

  概念:往Web页面里注入恶意Script代码,用户浏览这些网页时,就会 执行其中的恶意代码,可对用户进行盗取cookie信息、会话劫持等各种攻击。

 XSS实现的方式有:https://blog.csdn.net/wuyoudeyuer/article/details/104988940

  a、反射型XSS:一般是 动态网页技术(如:jsp、php等) 才会出现的 xss攻击。【需要服务器 程序 配合

    说明:发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。这个过程像一次反射,故叫反射型XSS。

  b、存储型XSS:动态网页技术 上出现的可能比较大;前后端分离项目中,接口返回脚本字符串的话,前端基本不会使用evel()这种函数特意去执行的。【需要 服务器的存储功能 配合

    说明:存储型XSS和反射型XSS的差别仅在于,提交的代码会存储在服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交XSS代码

    解决:对于外部 的内容,不要随意 以 DOM 形式 插入 到DOM 中。对于要 以 DOM 插入 的内容,一定要 校验 内容是否合法。

  c、DOM XSS:js中没有使用evel函数,要注入可执行的js脚本。只能通过DOM加载脚本才可以实现。如script、img 等标签【完全是客户端的事情

    说明:DOM XSS的代码并不需要服务器参与,触发XSS靠的是浏览器端的DOM解析,完全是客户端的事情。

    解决:对于外部 的内容,不要随意 以 DOM 形式 插入 到DOM 中。对于要 以 DOM 插入 的内容,一定要 校验 内容是否合法。

2、CSRF攻击(跨站请求伪造):参考链接同上

  问:cookie是不能跨域访问的,为什么会有csrf攻击 ?https://www.bilibili.com/video/BV1iW411171s?from=search&seid=1937005802712073454&spm_id_from=333.337.0.0

  答:https://blog.csdn.net/oqqaKun1/article/details/83507522 (解释起来,就是cookie在浏览器中并没有严格的跨域)

 攻击说明:

  对 get 请求进行 CSRF攻击:

  1、正规的 A 网页有一个 get 类型 的 转账接口。
  2、A 网站已经登录了,浏览器 会留下这个 A 站相关的 cookie 信息,一般是登录 凭证。
  3、B网站 页面中通过 img 标签调用 A 网站的 转账接口。这时,img 标签请求A网站会携带之前A站登录的cookie信息。这样B站就可以正常请求A站的请求看。
  利用的漏洞是:script,img或者iframe 等,发送的请求是可以跨域的。并且请求时,浏览器会附带上之前站点,登录用户的授权cookie信息。

  对 post 请求进行CSRF攻击:

  1、正规的 A 网页有一个 post 类型 的 转账接口。
  2、A 网站已经登录了,浏览器 会留下这个 A 站相关的 cookie 信息,一般是登录 凭证。
  3、B网站 页面中通过 from 标签调用 A 网站的 转账接口。这时,from 标签请求A网站会携带之前A站登录的cookie信息。这样B站就可以正常请求A站的请求看。
  利用的漏洞是:form表单,发送的请求是可以跨域的。并且请求时,浏览器会附带上之前站点,登录用户的授权cookie信息。

  CSRF防御:

    1、尽量使用POST   【相对降低攻击风险,POST通过from表单也是可以实现CSRF攻击的】

    2、加入验证码: 【可以确保是一个用户行为,而非黑客行为 】

    3、验证 Referer

    4、Anti CSRS Token 【请求 token 放在 header 上是不会被保存的,所以不会像 cookie一样,在其它的网站上发送请求也会携带对方的cookie】


 

1、免费wifi站点盗取用户信息  :  https://www.cnblogs.com/jiaopaner/archive/2016/10/18/5975391.html

2、post请求不是为了安全而设计的,只是相对get请求,隐藏了些敏感信息  :  https://www.cnblogs.com/ouzi/archive/2012/10/16/2726778.html

3、数据脱敏  : https://blog.csdn.net/huyuyang6688/article/details/77689459   (数据脱敏一般都是后端处理的)

4、数据脱敏和数据加密的区别  : https://blog.csdn.net/kkx1988/article/details/80050355

posted @ 2018-06-04 15:56  吴飞ff  阅读(141)  评论(0编辑  收藏  举报