你的Web系统真的安全吗?

这篇具有很好参考价值的文章主要介绍了你的Web系统真的安全吗?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Github blog: 你的Web系统真的安全吗?

千里之堤,溃于蚁穴。

在Web系统中,一个小小的漏洞,往往能引发极其严重的后果。因此,Web安全是每个系统在设计、开发、运维时必须要重点考虑的问题。

现如今很多Web系统所采取的防御措施是偏向于基础和简单的,往往只针对常见的安全漏洞做了防御,比如:

  • Csrf
  • XSS
  • Sql注入

等等。这些基础的防御措施是必须要做的,且实施的成本不高,但它们只是系统安全防御中的基础部分。很多开发人员在意识中认为做好这些就足够应付大部分情况了,这种想法是非常危险的。实际上,除了这些基础且标准化的漏洞,每个业务系统本身的业务逻辑也很有可能成为黑客攻击的目标,一旦被抓到并攻破,那后果将是非常严重的。下面将列举一些常见的业务逻辑漏洞,这些漏洞也是之前开发系统时踩过的坑,希望能对大家有所启发。

会话凭证管理混乱

我们都知道HTTP本身是无状态的,为了能让浏览器和服务器互相知道身份并信任对方,大部分web系统都是利用“token”这种约定的凭证来实现的,token会在用户登录之后产生,并在用户主动退出或者超过一段时间后失效。也就是说,请求带上了相应的token,那么服务端就能拿到token做相应的校验,校验通过则信任该请求并执行相关业务逻辑,如果没带、带一个非法的或者过期的则认为不合法。这看上去并没有什么问,但实际的实现上可能暗藏漏洞。

来看两个例子:

1.前端开发人员小明在写用户点击退出按钮的逻辑时,只是单纯的清空了cookie或者localstorage中的token值(token一般存这两个地方),并没有向后台发起请求让token在业务中过期失效。那这个token的有效性本质上违背了用户的意图,此时就存在非常大的风险。当用户自发退出后,token仍然有效,假如该token被他人通过某种方式获取并记录下来,那他可以完美的回放用户执行过的操作,比如更改用户信息,下单等。

2.在上面的例子中,我们有提到token是要设置过期的,合理的过期时间能有效降低风险。但后台开发小哥也许在设置token过期的配置中,眼花加手抖,多打一位数,或者把单位理解错,在S级单位上用了MS级的数值,那过期时间就会被设定的很长。对于登录之后就不喜欢主动退出或者长期挂着页面的用户就非常的危险。token在用户长期不使用的情况下依然有效,如果被他人拿到token,也能干很多的坏事。

校验失效

文件上传应该是Web应用上比较常用的功能,比如上传头像,上传文件到网盘等等。恶意用户可能会在上传的时候,上传木马、病毒、恶意脚本等文件,这类文件在服务器上被执行会带来比较严重的后果。这种攻击方式成本较低,比较容易被攻击者利用。允许上传的文件类型越多,受攻击的可能性就越大。当恶意程序被成功上传后,可能被用户下载,在用户电脑上执行后使之中毒。也可能在服务器上就执行恶意程序,造成服务器被控制,进而服务器瘫痪,数据丢失。

正常情况下,程序都会对文件类型进行判断,只允许我们认为合法的文件上传到服务器。但是,这个判断在一些web程序中,只在前端做了,在后端没做。这就给攻击者带来了机会,攻击者可以轻松的串改请求,从而实现非法文件的上传。

正确的做法应该是后端进行文件扩展名判断、MIME检测以及限制上传文件大小等限制来防御。另外,可以将文件保存在一个与业务隔离的服务器来防止恶意文件攻击业务服务器导致服务不可用。

数据枚举

在登录系统,大部分系统会在用户登录的时候判断用户是否存在,然后给出提示“该手机号未注册”。如果这个逻辑是用一个单独的接口做的,那么就会存在被暴力枚举的风险。攻击者可以通过该接口利用手机号码库进行请求枚举,识别出哪些手机号是在系统中注册过的,给下一步暴力破解密码带来机会。

对于这个问题,建议是将该判断放到登录验证的接口中,并不返回明确的提示。你会看到做的好的网站上,一般会提示“该手机号未注册或密码错误”。虽然这在用户体验上打了折扣,但也更加的安全。

数据写入重放

以一个论坛的发帖举例,利用抓包工具抓取论坛发帖的请求过程,并通过该工具重放过程,会发现帖子列表出现了两条一样的帖子,这就是被重放攻击了。如果加快重放频率,不仅会在系统中产生很多的垃圾数据,还会因为频繁写入给业务数据库带来巨大压力。

对于此类有重放风险的请求,建议加上请求频率限制。比如,可以判断两个请求的时间戳,设定大于某个时间值才有效。

权限漏洞

权限校验是Web系统的基本功能,比如一个公司组织架构管理系统,里面提供了修改部门名称、部门经理的功能。加上权限校验能很好地避免任意用户能通过这些功能修改他本无权限的信息。此类系统中一定会实现权限校验,但实际上真的实现对了吗?

假设我们规定,系统中某用户需要同时满足具有超管权限且属于A部门两个条件,才能修改部门名称。往往在实际的代码实现中,开发人员只是去判断该用户是否为超管,而没有判断该用户是否属于该部门。在这种情况下,我们可以用B部门的超管账号,去修改A部门的名称,相当于越权修改了,这显然不是我们期望的结果。即使B部门的超管用户在界面上无法找到修改A部门部门名称的入口,也可以通过抓取请求修改参数来实现。

除了越权修改,当然还能越权查看。我们肯定也不期望A部门的超管能看到B部门的部门信息,是不是?

建议大家的系统要对用户访问角色的权限进行严格的检查及限制。

安全无小事,正如开头所讲,任何一个漏洞都有可能带来毁灭性的打击,希望大家能重视。不仅在业务设计上要重视,同时也要在代码审查上要重视,以避免因实现而带来的低级漏洞问题。

以上只是举了众多安全漏洞中的一小部分,更多严重的Web应用程序安全风险可以查阅 OWASP Top 10 2017 发布的Top10安全问题。www.owasp.org.cn/owasp-proje…# 学习计划安排
你的Web系统真的安全吗?,前端,安全
我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣~

这里我整合并且整理成了一份【282G】的网络安全从零基础入门到进阶资料包,需要的小伙伴可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!

如果你对网络安全入门感兴趣,那么你需要的话可以

点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

①网络安全学习路线
②上百份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥HW护网行动经验总结
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析文章来源地址https://www.toymoban.com/news/detail-797474.html

你的Web系统真的安全吗?,前端,安全

到了这里,关于你的Web系统真的安全吗?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Spring Security保障你的Web应用安全

    🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页 ——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》 🐾 学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础

    2024年02月09日
    浏览(35)
  • 前端数据安全:保护你的应用不被黑客入侵

    在当今数字化时代,前端开发者的一个主要职责是确保应用程序中的数据安全。黑客们总是在寻找机会来窃取敏感信息,所以作为前端开发者,我们需要采取一些措施来保护用户数据。本文将介绍一些前端数据安全的基本原则和技术。 HTTPS 是一种加密通信协议,可以确保数据

    2024年02月11日
    浏览(53)
  • 信息系统安全审计,这种系统让你的电脑彻底安全!!

    信息系统安全性审计的主要目标是审查企业信息系统和电子数据的安全性、可靠性、可用性、保密性等。 一是预防来自互联网对信息系统的威胁,二是预防来自企业内部对信息系统的危害。 ——百度百科 信息系统安全涉及多个层面和维度,确保数据的机密性、完整性和可用

    2024年04月10日
    浏览(45)
  • 你的数字藏品可能真的只是一张图片

    国外 NFT 市场的火爆也同样引燃了国内的市场,像腾讯、阿里等诸多大厂纷纷入局,同时,大量中小企业也在这些头部企业的带领下聚集而来。出于政策风险隐患的防范要求,国内的区块链并不是国外的公链,而是由一个或多个机构独立部署的联盟链,同时也将 NFT 改名为

    2024年01月21日
    浏览(42)
  • Python设计模式:你的代码真的够优雅吗?

    当涉及到代码优化时,Python作为一种高级编程语言,具有广泛的应用领域和强大的功能。在软件开发中,设计模式是一种被广泛采用的解决问题的方案,它提供了一种在特定情境中重复使用的可行方案。在Python中,有许多设计模式可以用来优化代码。 其中两种常见的设计模式

    2024年01月25日
    浏览(45)
  • Web前端安全学习-CSRF

    今天下午上了一堂前端安全的课,挺有意思,记录下来。在上课之前,我对安全的概念是: 用户输入是不可信的,所有用户的输入都必须转义之后才入库。 然后,上面这个这种方式,仅仅是防止SQL注入攻击,避免业务数据库被渗入。 在数据库有了一层安全保护之后,攻击者

    2024年02月02日
    浏览(48)
  • 如何解决Web前端安全问题?

    我国网络技术水平的提升,带动着WEB前端业务量的显著增长,人们对于网络服务的需求也日益复杂,与此同时,越来越多的黑客出现,其攻击水平也有了明显提升,WEB前端也成为了众多黑客进行网络攻击的主要目标。 因此,开发者在进行网站建设,运营者在进行网站维护的过

    2023年04月09日
    浏览(31)
  • 《安全物联网系统设计》:我强烈建议你给你的物联网系统加一把安全锁

    《安全物联网系统设计》:我强烈建议你给你的物联网系统加一把安全锁 物联网安全成为全球范围内亟待解决的重要问题,尽管物联网安全提了那么多年,但身边我们不乏出现各式各样的物联网安全事件。本文将从一个全新的视角,重新了解一下如何设计物联网系统的安全,

    2024年02月08日
    浏览(35)
  • 聚焦Web前端安全:最新揭秘漏洞防御方法

    在 Web 安全中,服务端一直扮演着十分重要的角色。然而前端的问题也不容小觑,它也会导致信息泄露等诸如此类的问题。在这篇文章中,我们将向读者介绍如何防范Web前端中的各种漏洞。【万字长文,请先收藏再阅读】 首先,我们需要了解安全防御产品已经为我们做了哪些

    2024年02月13日
    浏览(39)
  • 从HumanEval到CoderEval: 你的代码生成模型真的work吗?

    本文分享自华为云社区《从HumanEval到CoderEval: 你的代码生成模型真的work吗?》,作者:华为云软件分析Lab 。 本文主要介绍了一个名为CoderEval的代码生成大模型评估基准,并对三个代码生成模型(CodeGen、PanGu-Coder和ChatGPT)在该基准上的表现进行了评估和比较。研究人员从真实

    2024年02月05日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包