Web安全 概述
转载自 “余弦”大牛的评论 https://www.zhihu.com/question/21606800
大牛的个人blog:http://evilcos.me/
链接:https://www.zhihu.com/question/21606800/answer/22268855
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
一. 首先你得了解Web
Web分为好几层,一图胜千言:
<img data-rawheight="720" data-rawwidth="960" src="https://pic4.zhimg.com/133c88180340b844466e8fa5552e122b_b.jpg" class="origin_image zh-lightbox-thumb" width="960" data-original="https://pic4.zhimg.com/133c88180340b844466e8fa5552e122b_r.jpg">
事实是这样的:如果你不了解这些研究对象是不可能搞好安全研究的。
这样看来,Web有八层(如果把浏览器也算进去,就九层啦,九阳神功……)!!!每层都有几十种主流组件!!!这该怎么办?
别急,一法通则万法通,这是横向的层,纵向就是数据流啦!搞定好数据流:从横向的层,从上到下→从下到上,认真看看这些数据在每个层是怎么个处理的。
数据流中,有个关键的是HTTP协议,从上到下→从下到上的头尾两端(即请求响应),搞通!难吗?《HTTP权威指南》720页!!!坑爹,好难!!!
怎么办?
横向那么复杂、纵向数据流的HTTP协议就720页的书!!!放弃好了……
不,千万别这样。
给你点信心是:《HTTP权威指南》这本书我压根没看过。但是通过百度/Google一些入门的HTTP协议,我做了大概了解,然后Chrome浏览器F12实际看看“Network”标签里的HTTP请求响应,不出几小时,就大概知道HTTP协议这玩意了。(这是快速研究的精髓啊)
搞明白HTTP协议后,你就会明白安全术语的“输入输出”。
黑客通过输入提交“特殊数据”,特殊数据在数据流的每个层处理,如果某个层没处理好,在输出的时候,就会出现相应层的安全问题。
精彩举例:
1. 如果在操作系统层上没处理好,比如Linux的Bash环境把“特殊数据”当做指令执行时,就产生了OS命令执行的安全问题,这段“特殊数据”可能长得如下这般:
; rm -rf /;2. 如果在存储层的数据库中没处理好,数据库的SQL解析引擎把这个“特殊数据”当做指令执行时,就产生SQL注入这样的安全问题,这段“特殊数据”可能长得如下这般:
' union select user, pwd, 1, 2, 3, 4 from users--3. 如果在Web容器层如nginx中没处理好,nginx把“特殊数据”当做指令执行时,可能会产生远程溢出、DoS等各种安全问题,这段“特殊数据”可能长得如下这般:
%c0.%c0./%c0.%c0./%c0.%c0./%c0.%c0./%204. 如果在Web开发框架或Web应用层中没处理好,把“特殊数据”当做指令执行时,可能会产生远程命令执行的安全问题,这段“特殊数据”可能长得如下这般:
eval($_REQUEST['x']);5. 如果在Web前端层中没处理好,浏览器的JS引擎把“特殊数据”当做指令执行时,可能会产生XSS跨站脚本的安全问题,这段“特殊数据”可能长得如下这般:
'"><script>alert(/cos is my hero./)</script>...
怎样,刺激吧?搞懂这些,就算入门啦。
- 记好:一切的安全问题都体现在“输入输出”上,一切的安全问题都存在于“数据流”的整个过程中。
- 记好:“数据流”、“输入输出”这两个关键点。
最新文章
- CI Weekly #5 | 微服务架构下的持续部署与交付
- php-cgi not found
- WPF获取应用程序启动目录的方法
- codevs1540 银河英雄传说
- spring boot + gradle[草稿]
- iOS中响应者链条-触摸事件
- ios------进度轮
- STM32F0xx_看门狗(独立+窗口)配置详细过程
- 我的WPF控件库——KAN.WPF.XCtrl(141105)
- [React Native] Build a Separator UI component
- 初次接触Android ActionBar比较烦人的问题[转]
- [swift]可选类型
- Greg and Array
- JavaScript使用需要注意的细节
- WIndows系统下mysql-noinstall安装配置
- Shell防DDOS攻击原理
- Chapter 2 Open Book——38
- 7-25 :active :after :before :disabled
- Asp.Net Core 轻松学-利用日志监视进行服务遥测
- 《Visual C# 从零开始学》
热门文章
- MFC消息-自定义消息
- Oracle 如何将“26-9月 -17 06.46.00.000000000 下午”字符串转换成标准日期格式
- Unity中物体碰撞后去掉相互之间的反弹力
- jenkins+findbugs+checkstyle+PMD静态代码检查(二)
- java 实现简单循环队列
- 使用STL的next_permutation函数
- [转]如何远程连接运行OpenGL/Cuda 等GPU程序
- 用postman做自动化测试
- 集成学习-xgboost
- rnn-手写数字识别-网络结构-shape