基础入门web应用

undefined

Web应用&架构搭建&站库分离&路由访问&配置受限&DNS解析

常规Web应用搭建步骤:

  1. 购买云服务器,购买域名
  2. 云服务器去搭建中间件
  3. 下载并上传Web程序源码
  4. 添加网站并绑定域名目录
  • www.xiaodi8.com zblog asp程序
  • xiaodi.xiaodi8.com wordpress php程序
  • bbs.xiaodi8.com 论坛 dz程序
  • oa.xiaodi8.com OA通达OA
  • 域名&配置-主站&分站&端口站&子站
    • 子域名模式
    • 端口模式
  • 源码&配置-路由访问&文件结构&语言类型
  • 解析&配置-网站目录&绝对相对路径&权限
  • 数据库&配置-数据类型&数据存储&授权登录
  • Web程序源码:
    • 开源 商业 自写
    • 开源-源码可见
    • 自写-源码不可见
  • 加密
  • 语言特性决定
  • 路由访问
    • 常规:URL和文件目录对应上
    • 路由访问:mvc源码 java python
    • URL和文件目录对应不上 要根据配置路由决定

Web架构&前后端分离站&Docker容器站&集成软件站&建站分配

Web架构-常规化&站库分离&前后端分离 Web架构-集成软件&Docker容器&分配站

  • 常规化
    • 原理:源码数据都在同服务器
    • 影响:无,常规安全测试手法
    • 自己搭的iis:
      • Iis apppool\defaultapppool
  • 站库分离
    • 原理:源码数据库不在同服务器
    • 存储:其他服务器上数据库&云数据库产品
    • 影响:数据被单独存放,能连接才可影响数据
  • 前后端分离
    • 原理:前端JS框架,API传输数据
    • 影响:
    1. 前端页面大部分不存在漏洞
    2. 后端管理大部分不在同域名
    3. 获取权限有可能不影响后端
  • 宝塔+Phpstudy
    • 原理:打包类集成化环境,权限配置或受控制
    • 影响:攻击者权限对比区别
    • 拿到权限后
      • 宝塔:
        • 文件管理 锁定目录
        • 命令执行 无法执行
      • phpstudy
        • 文件管理 锁定目录
        • 命令执行 无法执行
      • whomi获取用户权限 - administrator
        • Izsjxymy4bzovoz\administrator
  • Docker 容器
    • 原理:虚拟化技术独立磁盘空间,非真实物理环境
    • 影响:攻击者虚拟空间磁盘
  • 建站分配站
    • 1.托管
    • 2.申请
    • 原理:利用别人域名模版建立
    • 影响:实质安全测试非目标资产
  • 静态Web
    • 例子:大学学的html设计的网站
    • 原理;数据没有传输性(js传输不算)
    • 影响:无漏洞
  • 伪静态
    • 动态转为静态技术,伪装的静态

Web架构&OSS存储&负载均衡&CDN加速&反向代理&WAF防护

  • WAF防护-拦截安全攻击
    • 原理:Web应用防火墙,旨在提供保护
    • 影响:常规Web安全测试手段会受到拦截
    • 演示:免费D盾防护软件
    • Windows2012+IIS+D盾
  • CDN节点-隐藏真实源IP
    • 原理:内容分发服务,旨在提高访问速度
    • 影响:隐藏真实源IP,导致对目标测试错误
    • 演示:阿里云备案域名全局CDN加速服务
    • Windows2012+BT宝塔面板+CDN服务
    • CDN加速准备好备案域名
    1. 配置宝塔的域名绑定 47.122.22.195 -> www.zoro8.com
    2. 配置cdn加速选项
    3. 添加DNS CNAME记录
    4. 等待几分钟即可
  • OSS
    • 原理:云存储服务,旨在提高访问速度
    • 影响:上传的文件或解析的文件均来自于OSS资源,无法解析,单独存储
    1. 修复上传安全
    2. 文件解析不一样
    3. 但Accesskey隐患
    1. 启动应用
    2. 登录管理
    3. 配置存储信息
    4. 更改用户组存储属性
    • 阿里云OSS:
    1. 开通OSS
    2. 新建Bucket
    3. 配置Bucket属性
    4. 配置Access访问
    • 为什么要使用第三方存储?
    1. 静态文件会占用大量带宽
    2. 加载速度
    3. 存储空间
  • 反向代理-内网应用转发
    • 正向代理为客户端服务,客户端主动建立代理访问目标(不代理不可达)
    • 反向代理为服务端服务,服务端主动转发数据给可访问地址(不主动不可达)
    • 原理:通过网络反向代理转发真实服务达到访问目的
    • 影响:访问目标只是一个代理,非真实应用服务器
    • 注意:正向代理和反向代理都是解决访问不可达的问题,但由于反向代理中多出一个可以重定向解析的功能操作,导致反代理出的站点指向和真实应用毫无关系!
    • 演示:Nginx反向代理配置
    • Windows2012+BT宝塔面板+Nginx
  • 负载均衡-多台机器服务
    • 原理:分摊到多个操作单元上进行执行,共同完成工作任务
    • 影响:有多个服务器加载服务,测试过程中存在多个目标情况
    • 演示:Nginx负载均衡配置
    • Windows2012+BT宝塔面板+Nginx
    • 定义负载设置 upstream fzjh{ server 47.94.236.117:80 weight=2;(权重) server 47.122.22.195:80 weight=1; }
    • 定义访问路径 访问策略 location / { proxy_pass http://fzjh/; }

基础入门app应用与微信小程序应用

image.png

APP架构&小程序&H5+Vue语言&Web封装&原生开发&Flutter

APP应用开发架构:

  1. 原生开发 安卓一般使用java语言开发,当然现在也有kotlin语言开发。如何开发就涉及到具体编程了,这里就不详细说了。简单描述就是使用安卓提供的一系列控件来实习页面,复杂点页面可以通过自定义控件来实现。
  2. 使用H5语言开发 使用H5语言开发的好处有很多,可多端复用,比如浏览器端、ios端,当然H5开发的体验没有原生好的。结合经验来说,一般这个页面需要分享出去的话,就用H5开发。
  3. 使用flutter开发 flutter是近年来谷歌推出的一款UI框架,使用dart语言进行开发,支持跨平台,weight渲染直接操作硬件层,体验可媲美原生。但是flutter技术比较新,生态还不完善,开发起来效率相对偏低。
  4. 常规Web开发 Web App软件开发简单地说,就是开发一个网站,然后加入app的壳。Web App一般非常小,内容都是app内的网页展示,受制于网页技术本身,可实现功能少,而且每次打开,几乎所有的内容都需要重新加载,所以反应速度慢,内容加载过多就容易卡死,用户体验差,而且app内的交互设计等非常有效。但开发周期长,需要的技术人员少,成本低。

APP-开发架构-原生态-IDEA

  • 演示:remusic 项目源码
  • 安全影响:
    1. 反编译&抓包&常规测试
    2. 逆向的角度去分析逻辑设计安全

APP-开发架构-Web封装-封装平台

  • 演示:ShopXO源代码程序+一门APP打包
  • 安全影响:常规Web安全测试

APP-开发架构- H5&Vue-HBuilderX

  • 演示:HBuilderX案例
  • 安全影响:API&JS框架安全问题&JS前端测试

微信小程序-开发框架- Web封装-平台

  • 演示:ShopXO源码程序+一门APP打包
  • 安全影响:常规Web安全测试