最近安全这块话题炒的很热,袁伟事件的争议很大, 著名的漏洞报告平台乌云也在整顿维护了,个中缘由大家自己去猜测吧。
言归正传, 本人也做过半年不到的安全开发工程师。接下来聊聊我对web安全开发这块的经验,讲讲常用的防护措施。
楼主曾经在公司的安全部负责安全运营平台的开发(soc)。这个平台主要包括威胁情报的收集,主机策略扫描,主机加固,行为监控,代码审计
漏洞扫描等功能。说起来高大上的系统 其实底层一些处理,比如漏洞扫描啊之类的,也是调用360的库去做的。毕竟老大是360出来的。
在做以上系统的过程中接触到各种关于web攻击的名词,如 :xss,csrf等等。当然也知晓一些防护手段。下面讲讲吧:
XSS:
1、反射型跨站脚本攻击
攻击者会通过社会工程学手段,发送一个URL连接给用户打开,在用户打开页面的同时,浏览器会执行页面中嵌入的恶意脚本。
2、存储型跨站脚本攻击
攻击者利用web应用程序提供的录入或修改数据功能,将数据存储到服务器或用户cookie中,当其他用户浏览展示该数据的页面时,浏览器会执行页面中嵌入的恶意脚本。所有浏览者都会受到攻击。
3、DOM跨站攻击
由于html页面中,定义了一段JS,根据用户的输入,显示一段html代码,攻击者可以在输入时,插入一段恶意脚本,最终展示时,会执行恶意脚本。
DOM跨站和以上两个跨站攻击的差别是,DOM跨站是纯页面脚本的输出,只有规范使用JAVASCRIPT,才可以防御。
恶意攻击者可以利用跨站脚本攻击做到:
1、盗取用户cookie,伪造用户身份登录。
2、控制用户浏览器。
3、结合浏览器及其插件漏洞,下载病毒木马到浏览者的计算机上执行。
4、衍生URL跳转漏洞。
5、让官方网站出现钓鱼页面。
6、蠕虫攻击
攻击方式: 比如存储某个值,用户输入<script>alert(1)</script> 如果页面展示未做处理,那么将会弹出1这个窗口。
解决方案: XSS转义。
CSRF: 跨站请求伪造攻击。
攻击者在用户浏览网页时,利用页面元素(例如img的src),强迫受害者的浏览器向Web应用程序发送一个改变用户信息的请求。
攻击方式: 用户在自己的服务器上搭建了一个网页,把链接发你,这个页面内部做了强制发送请求的处理,但你打开页面时,你的一些信息可能会被修改。
在整个攻击过程中,受害者用户仅仅看到了一个空白页面。
解决方案:token认证
注入攻击: 注入包括 sql注入,代码注入,xml注入,系统命令注入
攻击范式: 注入类的工具基本就是通过恶意字符串传输,导致系统运行恶意脚本。
解决方案:针对sql注入,可以用预处理的方式,代码注入,可以限制,xml注入可以转义,系统命令注入可以预设命令白名单。
web安全攻击这块 基本就以上几个点了,记住一点,永远不要相信用户给的任何对象,举个例子,我们的项目有excel上传的功能,这个
上传可以通过服务器解析xls,生成报表展示在页面上。楼住通过编辑xls的xml文本,引入外部实体,写了个命令回显服务器内部信息。
本来应该显示 "金额" 的<td>金额</td> 最后这块内容 显示的是 服务器内部隐私信息。
最后我想说 软件安全这块是很重要的事情。 希望大家多关注网络上曝光的一些bug,及时更新自己的软件。
安全这块处理的方式很多,有好有坏! 欢迎大家交流。 QQ:409527094 验证:来自博客园