文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

聊一聊Web开发安全

2024-12-11 16:20

关注

本文转载自微信公众号「虞大胆的叽叽喳喳」,作者虞大胆  。转载本文请联系虞大胆的叽叽喳喳公众号。

今天回忆下web开发安全问题,以前在新浪博客时,遇到最多的攻击是XSS和SQL注入攻击。

博客最核心的功能就是富文本发文,允许执行html语义标签,如果处理不当,就能执行js语句,导致各种的xss攻击。

那时候解析文章内容没有很好的dom解析库,堵住漏洞非常辛苦和被动。

另外攻击就是sql注入,破坏过一些表数据,但大范围的故障没有出现过。

这二个攻击在互联网刚开始的时候非常流行,最重要的原因就是它们的宿主环境是浏览器,浏览器能够执行html和js。SQL攻击同样如此,如果宿主环境不能打印sql执行结果,攻击力度会小很多。

而现在是APP时代,都是接口调用,即使接口中含有html字符,APP也不会去执行;同时API接口的鉴权也非常严格,很少出现SQL注入攻击。

当然HTTPS的推广和普及也让http服务安全提高了不少,至少很难出现残暴的篡改攻击了。

所以现在攻击的土壤就是企业内部网站了,因为它们大多数运行在浏览器之下,那如何解决呢?

从Web安全的角度看,cookie和session的设计本身就是有问题的,以前写过一篇文章,后面可以发到公众号中。

xss攻击本质上也是结合cookie一起形成危害的,今天同事提了个方法,现在很多cookie不会校验它的出处,如果能够绑定cookie和设备(比如设备号或者IP),那么攻击就小了很多,比如发现攻击者附带的cookie值和IP与存储在redis中的cookie和IP不一致,就拒绝访问。

对于内部系统,可以采取二次auth验证,比如nginx就有http basic auth验证;或者登陆才能访问内部系统。

攻击分为主动攻击和被动攻击,主动攻击不可怕,总能找到方法解决,而被动攻击就非常危险,在关键时刻可以给人致命一击。

在出现安全问题的时候,首先要判断服务器有没有被人控制,如果被控制了,危险非常大;如果仅仅是利用应用程序漏洞,那么危险性就会小很多。

服务器一旦被攻击,那么数据库密码等关键信息就会泄露,数据库就相当于裸奔了,就算数据库隔离的好,还是抵挡不住别人一条DELETE语句;为了减少损失,有两个建议。

第一就是数据库用户授权要做的更精细一点;另外使用proxy代理数据库,通过proxy来抵挡一些攻击。

应用层的攻击主要利用软件的漏洞,或者考验编程人员的能力。所以经常升级系统和软件,使用相对成熟的代码框架,严谨编程,能够减少很多问题,大概90%的安全问题还是由于代码的原因。

当然口令安全也非常重要,有很多理论知识,但只要掌握几点就能解决大部分问题,口令一定要是强口令,避免暴力破解;另外就是口令存储要使用更严格的密码学算法,不要简单的sha1然后存储到数据库中,很容易字典攻击;最后在应用层的防攻击也很重要,不过现在很少直接口令登陆了,都是验证码或者微信授权。

当然很重要的一个习惯就是经常性变更口令,能够解决很多问题,其实有的时候出现一个安全问题,最后才发现,口令泄露了,根本不是技术问题。

对于服务器本身安全,就是尽量少装软件;少开外网端口(比如mongodb,es一定不要绑定外网端口),即使开了,也要做白名单;使用防火墙做更细颗粒度的控制;服务之间做隔离,比如web服务器被攻击了,但web服务器访问的数据库密码由更安全的硬件存储,这样危险性就少了很多。

有的时候大家很注意外部安全,但内网之间的隔离也非常重要,不能畅通无阻。

隔离还有个好处就是出现问题后,可以快速在其他机房复制服务,从而减少故障的影响。授权也很重要,服务之间的授权方式一定要在云端,不能依赖本地。

当然核心安全还是数据库资源,数据是一切之本。

最后没有绝对的安全,都是博弈,如果网站规模不大,可能没人愿意黑你。而如果规模化了,那么就树大招风了。提前做好准备,以便应对,不至于出现问题的时候手足无措。

 

来源:虞大胆的叽叽喳喳内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯