安全防范------常见的安全问题以及防范

什么是XSS攻击? 如何防范XSS攻击?  什么是CSP?

XSS 简单点说----攻击者想尽一切办法把可执行代码注入到网页中

两种XSS攻击----------持久型 和非持久型

持久型:攻击的代码被服务端写入数据库中(访问数量大的话,导致大量用户都受到攻击)

eg:评论区出现代码,保存到数据库中------用户每次打开页面都会受到攻击

非持久型:危害小于前者 

一般通过修改URL参数的方式加入攻击代码,引导用户访问连接从而进行攻击

eg : <!-- http://www.domain.com?name=<script>alert(1)</script> -->这种攻击Chrome帮助用户防御攻击

两种方式防御XSS攻击

方式一:

1.转义字符:对于用户输入永远不信任---------普遍做法:转义输入输出内容,对引号,尖括号,斜杠转义

通过转义可以将攻击代码 <script>alert(1)</script> 变成


但是对于显示富文本-------不能通过上面方法转义所有字符-------因为这样将格式也会处理掉

2.对于这种情况,通常采用白名单过滤的办法,当然也可以通过黑名单过滤,

但是考虑到需要过滤的标签和标签属性实在太多,更加推荐使用白名单的方式。

上示例使用了 js-xss 来实现,可以看到在输出中保留了 h1 标签且过滤了 script 标签。

方式二:CSP:本质 就是建立白名单

开发者明确告诉浏览器那些外部资源可加载 执行-------------我们只需要配置规则,如何拦截是浏览器自己实现

以下两种但是开启CSP

1.设置 HTTP Header 中的 Content-Security-Policy

2.设置 meta 标签的方式 <meta http-equiv="Content-Security-Policy">


只要开发者配置了正确的规则,那么即使网站存在漏洞,攻击者也不能执行它的攻击代码,并且 CSP 的兼容性也不错。



CSRF攻击

涉及面试题:什么是 CSRF 攻击?如何防范 CSRF 攻击?

CSRF 中文名为跨站请求伪造。原理就是攻击者构造出一个后端请求地址,诱导用户点击或者通过某些途径自动发起请求。如果用户是在登录状态下的话,后端就以为是用户在操作,从而进行相应的逻辑。

eg:网站中通过GET请求,提交用户评论接口-----------------攻击者在钓鱼网站中加入图片,图片地址就是评论接口(post请求也会由这个问题)

<img src="http://www.domain.com/xxx?comment='attack'"/>

防御:1. Get 请求不对数据进行修改

          2. 不让第三方网站访问到用户 Cookie

          3. 阻止第三方网站请求接口

          4.请求时附带验证信息,比如验证码或者 TokenSameSite



点击挟持



中间人攻击



©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文主要讨论以下几种攻击方式: XSS攻击、CSRF攻击以及点击劫持。 前端有哪些攻击方式? 什么是XSS攻击?X...
    骑着蜗牛逛妓院阅读 3,961评论 0 0
  • Web 安全的对于 Web 从业人员来说是一个非常重要的课题 , 所以在这里总结一下 Web 相关的安全攻防知识,...
    Yishto阅读 40,362评论 3 33
  • 操场的正前方有一颗塔柏,绝对是一颗标准体型塔柏。笔直地杆,斜逸的枝上缀满了
    湛湛露斯阳阅读 2,166评论 0 0
  • 人 问㈠ 齐楚有重丘之役。人问于於陵子曰:“齐,子产也;楚,子居也,得失子具㈡焉。今二国构兵,子将奚直?①” 於陵...
    阅藏闲记阅读 4,668评论 0 1
  • 这个周末,我读了一本书《童眸》。这本书讲述的,是上个世纪70年代,仁字巷里孩子们成长的故事。我一边阅读着,一边受到...
    郭家豪阅读 3,226评论 0 1