前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >web安全性浅析

web安全性浅析

作者头像
ConardLi
发布2019-09-08 14:42:52
7920
发布2019-09-08 14:42:52
举报
文章被收录于专栏:code秘密花园code秘密花园

导读:

分类:技术干货

题目:web安全性浅析

示例+原因+防御

XSS跨站脚本攻击

在新浪博客写一篇文章,同时偷偷插入一段 script

攻击代码中,获取cookie,发送给自己的服务器

发布博客,有人查看博客内容

会把查看者的cookie发送到攻击者的服务器

攻击原理:

能注入恶意的HTML/JavaScript代码到用户浏览的网页上,从而达到Cookie资料窃取、会话劫持、钓鱼欺骗等攻击。

Web浏览器本身的设计不安全。浏览器能解析和执行JS等代码,但是不会判断该数据和程序代码是否恶意。

防御措施:

让注入的js不可执行。

1.输入检查 XSS Filter 对输入内容做格式检查,类似“白名单”,可以让一些基于特殊字符的攻击失效。在客户端JS和服务器端代码中实现相同的输入检查(服务器端必须有)。

2.输出检查 在变量输出到html页面时,可以使用编码或转义的方式来防御XSS攻击 HtmlEncode:将字符转成HTMLEntities,对应的标准是ISO-8859-1。

& --> &

< --> &lt;

> -->&gt;

" --> &quot;

' --> &#x27;

/ --> &#x2F;

JS中可以使用JavascriptEncode。需要对“\”对特殊字符转义,输出的变量的必须在引号内部。

3.请求头设置 . set-cookie 设置 httpOnly 属性可以禁止JavaScript读取cookie

# CSRF 跨站请求攻击

攻击原理:

1.在网站A中登录过,存在漏洞(只用cookie验证)

2.在网站B引诱点击

传统使用cookie中存储sessionid,但是在任何一个站点都可以获取到你的sessionid并发起携带他的请求,这就是CSRF的原理。

防御措施:

1.token验证

token存储在用户session中,每个用户不同。

不将token存储在cookie中而是放在表单隐藏域中或者localstorage中,每次请求用代码添加,就能防止钓鱼。

2.Referer验证(判断站点的来源,比如不是订单页面不让提交订单)

在 HTTP 头中有一个字段叫 Referer,它记录了该 HTTP 请求的来源地址

3.隐藏令牌 (和token类似,比较隐蔽,比如放在请求头中)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 code秘密花园 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档