web安全个人总结

“互联网本来是安全的,自从有了研究安全的人之后,互联网就变得不安全了。”

安全一直是互联网中比较重视的问题,一个安全事件可能会给企业带来巨大的利益和声誉上的损失。但这点也是在日常开发或产品设计中容易疏忽的东西,在此总结一下我在web安全上一些浅显的理解以及日常防范措施。

常见的web安全问题

越权

越权顾名思义就是越过自身权限,可操作本不属于自己权限范围内的功能。
越权也是日常开发中容易出现的安全漏洞。


越权.jpg
  • 横向越权
    同一级别权限, 可以访问其他用户数据。
    如:普通用户A可以看到普通用户B的转账记录,属于横向越权。

  • 纵向越权
    不同级别权限, 可访问更高/不同角色用户数据。
    如:普通用户可查看财务专员才能看的财务报表,属于纵向越权。

防御措施

  • 权限统一平台管理,代码统一将所有权限维护在一处。
  • 做好不同场景角色的自测,包括web界面测试和接口权限测试。
  • 在敏感操作前,应该设计二次安全验证,如审批,验证码等。
  • 登陆态设置合理过期时间,所有请求都必须校验好登陆凭证是否合法。
  • 在多个服务/模块的情况下, 做好认证, 非认证范围内的服务/模块不允许访问。

跨域漏洞

对前端比较熟悉的同学都知道,浏览器在安全功能上有个同源策略。
何为同源?即同个ip,端口,协议。默认情况下,在源网站下不允许跨域访问资源。

允许跨域访问资源的标签

script,img,iframe,link这些带src属性的标签比较特殊,是允许访问跨域资源的,相当于是对浏览器发起了一个get请求。

为什么需要同源策略

对跨越有初步认识后,可以设想一种情况,如果没有同源策略,那么有可能网站A的一段JavaScript脚本对网站B做了改动,但实际上网站B并没有引入网站A的脚本。那这就是一个安全漏洞了。

但随着互联网的发展,许多公司业务开始变复杂庞大,跨域又几乎是大家都要面临的问题。如我们工作中经常需要访问第三方系统数据,或者自身业务系统需要提供接口给第三方调用,这些都涉及跨域问题。

跨域注意事项

  1. 服务端设置 Access-Control-Allow-Originhttp头时尽量遵循以下设计原则:
  • 权限最小化

CORS规范是全有或全无。它只支持*,null或确切的协议+域+端口

 rep.setHeader("Access-Control-Allow-Origin", "*"); // 非必须情况不要这么写

尽量使用白名单,而不是黑名单。

// 允许跨域白名单
const allowDomains = ["http://域名1", "http://域名2", "http://域名3"]
......

注入风险

攻击者通过注入脚本到网站内到达攻击效果。
如前端的xss攻击和后端的sql注入问题。

防御措施

  • 不要信任任何外部的输入,要作好转义或者严格的正则过滤。

xss跨站脚本攻击

也属于注入攻击,即黑客注入了html篡改原网页内容。

常见xss类型

  1. 反射型
    本质就是攻击者通过浏览器一些可操作入口将恶意脚本注入进来并执行.

  2. 存储型
    攻击者将恶意脚本注入到服务器中, 相当于持久化了, 这种危害比较大, 访问到攻击页面的用户都受收到影响.

防御措施:

  • 现网上也有挺多方案可提供预防xss攻击的脚本, 另外vue也对模板会进行转义处理.
  • 对于外部输入的表单/参数, 做好校验过滤, 转义.
  • 不直接执行/展示用户的输入内容, 应该在之前做好过滤
  • 为防止攻击者使用脚本利用cookie劫持的方式获取到用户登录凭证, response set-cookie应该设置好httponly属性

csrf跨站请求伪造

跨站请求攻击,简单地说,是攻击者通过一些技术手段欺骗用户的浏览器去访问另一个恶意页面, 利用浏览器已存在的登录态去做一些操作: 如转账, 发邮件等。

防御措施:

  • rerferer check
  • token校验

其实我们现在经常看到一些网站设计有以下相关提示:

安全性未知,是否继续
这也是在产品设计角度对csrf漏洞防御手段之一,将用户往更安全的行为上引导,可能会有风险。

前端安全

  1. vue.config.js {productionSourceMap : boolean }
    SourceMap即资源地图,默认为true, 开启后能够方便通过控制台打印信息定位到源代码所在文件。
productionSourceMap:true定位代码

该属性是vue-cli打包提供的配置选项, 若设为false, 打包后代码会经过压缩加密, 不能直接定位到源文件, 相对安全, 且一般打包后的map文件比较大, 从打包优化角度也可选择关闭资源地图。

productionSourceMap: false定位代码
  1. 不直接引用外网的cdn资源,下载到本地引入或者上传到公司内网的cdn仓库进行访问。
  2. 服务端设置HTTP保护头,如nodejs可以使用helmet中间件: helmet github地址
  3. 服务端对每个接口每次访问都要验证好登录态


总结

开发设计在安全角度上要注意的事:

  • token/AK/SK等秘钥不要明文写在代码里, 可用环境变量, 系统变量最好加salt处理。
  • 注意打印的信息, 敏感信息应该脱敏处理或者加密。
  • 不可信任用户/前端的输入, 做好匹配过滤. 尽量用正则, "全等"。
  • 敏感的操作前, 应该有安全确认: 审批流, 验证码等。
  • 要依赖第三方结果再进行的操作前(如依赖第三方回调接口提供的审批结果去判断是否执行内部的下一步操作), 应该要用 id去源系统进行反查, 确认结果符合预期再操作。
  • 用户行为上, 系统中所有用户操作应该都要审计上报到公司监控平台, 记录每个用户在何时做了什么操作(当然也要记录访问的user-agent, ip,url, 请求和返回的参数等, 尽量详细, 方便日后问题定位)。
  • 接口访问上, 系统也要记录每个接口的访问成功量, 失败量, 请求耗时, 总请求量等上报到监控平台。
  • 提高攻击的门槛,比如验证码,cookie设置时长、readonly参数,token认证等。
  • 合理使用验证码, 防止攻击者批量注册, 暴力破解程序。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容