为了账号安全,请及时绑定邮箱和手机立即绑定

花式填坑第8期 | 系统提示,你的好友【web安全】已上线

标签:
Python

图片描述

 

01 写在前面的话

 

从这次蠕虫勒索病毒事件来看,网络安全已然成为备受关注的新领域。说起网络安全,绝大多数人都是既熟悉又陌生。

熟悉的是玩电脑的时候都知道要安装杀毒软件,陌生的是大家并不了解遇到安全问题该如何解决,又该如何杜绝隐患。

我们要知道,当Web安全遭受威胁时会有哪些后果呢?轻则造成信息漏洞,重则可导致用户遭遇不可弥补的损失。

 

02 关于web安全的问答

 
Q:老师,您好,作为一名后端开发工程师javaweb而言,我觉得有许多web安全都是从用户输入进行攻击的,永远不要相信用户这句话很著名。。所以大部分从前端页面来做验证,判断,那么就java方向的后端工程师来说,有什么可以进行辅佐类的代码思想吗?在java方向的web开发好像比脚本语言要安全的多。。望老师解答,谢谢…
           
TooooBug:首先,你说得很对,永远不要相信用户输入。既然如此,怎么可以信任前端验证呢?你暴露给前端的接口,前端只要给这个接口传数据就行了,你是无法保证这个数据是验证/过滤过的。所以验证/过滤这件事情一定是在后台做的。在这个前提下,常见的安全问题都需要java后台开发来关注。 另外说java比脚本安全得多,这个好像并没有什么论据可以支持。java后端出的安全问题也并不比脚本语言少。

                                            
Q:我见过有人被加了个js脚本,然后这个脚本会自己跳转到对方的网站上,甚至在百度搜索引擎搜索的时候,在后面会有xxx的关键词,或者有的用户名没限制,可以让他输入js,再然后的话端口有些是我需要的,但是我不知道开启之后会不会不安全,所以我想知道下啥端口开启后是不安全的,比如21,3389什么的

                      
TooooBug:对的,XSS就是脚本注入。端口的话没有一刀切的说法,不可能说21是安全的,3389是危险的。如果真是这样的话,那大家只要避开危险端口就好了。事实上每个端口后面都对应有不同的服务,服务的部署水平会决定是否安全,此外,因为大部分服务使用的是开源软件,很可能带有被广泛公开的漏洞,所以开的服务越多,出问题的可能性就越大。

                                            
Q:老师,面试时会有哪些安全相关的问题吗

                      
TooooBug:这个看公司风格。大部分对技术面得比较详细的公司都会问安全的问题的。 一般会关注常见的比如 XSS CSRF SQL注入 上传等问题的原理和修复方案。还有密码安全也基本上是面试必考点。

                      
Q:请问老师对于web项目怎么进行安全检查 有哪些步骤? 最佳实践是什么?

                      
TooooBug:安全检查的话,应该有几个方面:

  1. code review,通过review来发现一些明显的安全问题;
  2. 配置通用的安全机制,比如防火墙策略,公共安全检查机制(很多云服务都有入侵检测);
  3. 通过定期扫描,一些大公司会有这样的机制,由机器人24小时随机扫描网站和接口,发现很多典型的安全问题;
  4. 找安全公司进行审计,这个成本会比较高,一般适用于项目需要跨团队交付的情况 最佳实践的话我也不好说,这个得看具体的团队配置情况决定。团队成员方向和团队规模不一样的话,在安全方面的做法是会完全不一样的。

                                                                  
                      
Q:用yii2框架是否比较安全可以排除一部分人

                      
TooooBug:框架一般会配置一些安全措施,比如像SQL注入,一般带ORM的框架都能比较好地处理。但是有一些场景还是需要自己处理的,比如像XSS、CSRF(框架可能有一些辅助),或者像密码安全之类的。所以还是要自己掌握好原理,不能依赖框架解决所有的安全问题。

                      
Q:老师,请问前端需要关注安全问题吗?

                      
TooooBug:当然需要的。web前端开发是离用户最近的一群人,和安全问题息息相关。 比如XSS攻击正是通过前端的入口将攻击代码给过来的,也是通过前端的展示再将攻击代码展示给其它用户的。这中间有非常多需要前端去学习和关注的安全点,如果处理不好就会导致安全问题出现。

当网站真的出现安全问题的时候,一般一线处理人员也会是前端先参与,确认出问题的地方和性质,然后看看如何修复。如果确实没有办法靠前端独立修复,也需要去指导后端同学一起参与修复,并且需要确认修复后用户体验是不受影响的。

                                                                  
Q:请问老师,各种安全问题产生的原理是什么呢

                      
TooooBug:安全问题的产生基本上有两种来源: 一是因为开发人员考虑不周,导致黑客找到漏洞。 二是代码跑的环境不安全,比如服务器被黑。

                      
作为开发人员,需要详细了解安全问题的原理。 比如XSS的原理是因为用户将它的数据变成了代码,在页面中跑起来了,所以就可以为所欲为。 CSRF则是当用户不知情时,被黑客的网页通过图片、表单等请求时,用户的登录态(Cookies)在不知情的情况下会被发送到服务器,导致用户在不知情的情况下被利用身份。 点击支持则是网页被嵌入到了其他网站中,并通过视觉隐藏的方式引导用户进行一些不知情的操作。 上传导致的漏洞是因为用户的文件没有做好判断和处理,导致传上来的文件被当成程序执行了。 SQL注入是用户的数据被当成了表示SQL语义的部分,改变了原来的查询语句的语义,从而产生意料之外的结果。

                      
每一种安全问题背后都有复杂的原理,要在这里说清楚其实不太容易。如果你对哪一方面有兴趣的话我们可以单独详细探讨一下。 如果你希望系统地学习了解的话,推荐你看《Web前后端漏洞分析与防御》。

 
讲师介绍

TooooBug讲师个人主页,可点击查看
图片描述

点击查看更多内容
37人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消