WEB应用程序原理(概述)_xiaofengdada的博客-CSDN博客

一、动态web应用程序的开发分为3个层次

1、表现层(UI):这一层的代码用来浏览器中显示数据和接收用户输入的数据,为用户提供一种交互式的界面。

2、业务逻辑层(BLL):这一层代码在动态服务器端实现验证,计算和制订业务规则等业务逻辑,在整个体系架构中处于关键位置,是数据交换中承上启下的环节。

3、数据访问层(DAL):这一层代码用来 和数据库进行交互操作。主要实现对数据的增、删、改、查操作。


二、技术分工--前端与后端

(1)前端工程师

主要工作是编写三层架构中的表现层,编写的代码会通过网络下载到动态客户端,由浏览器进行解释和执行。因此,前端程序员需要掌握的技术:

1.HTML:决定页面的结构和内容

2.CSS:决定一个页面的样式

3.JS:决定页面的行为

目前有很多针对前端代码的攻击手段,其中最为著名有XSS攻击、CSRF攻击和HTTP劫持:

XSS(Cross Site Scripting:跨站脚本)攻击:通常是指利用网页开发时留下的漏洞,通过注入恶意指令代码到网页,使用用户加载并执行攻击者恶意制造的网页程序,这些恶意网页程序通常使JavaScript,但也可包括Java,VBScript,ActiveX,Flash,有时也会使普通HTML。攻击成功后,攻击者可能获得更高的权限,私密网页内容会话,和cookie等内容。

CSRF攻击全称是跨站请求伪造(Cross Site Request Forgery),是一种对网站的恶意利用,从名字上看和XSS有些相似,但原理和攻击方式差别很大,XSS利用的是站点内的信任用户,而CSRF则是通过伪装来自受信用户的请求来利用受信任的网站,也可以这么理解CSRF攻击,攻击者盗用了你的身份,以你的名义向第三方网站发送而已请求,CSRF可做的攻击事情包括利用你的身份发送邮件、发短信、进行交易转帐等、甚至盗取你的账号。

HTTP劫持是在使用者与目的网络服务所建立的专用数据通道中,监视特定数据信息,提示当满足设定的条件时,就会在正常的数据流中插入设计好的网络数据报文,让客户端解释错误的数据,并弹出新窗口,同时在使用者界面上展示广告或直接显示某网站的内容。

(二)后端程序员

后端代码指在Web服务器端解释和执行的代码,这些代码不会传输到用户的浏览器中。常见的后端编程语言有PHP、JSP、ASP.net等,使用这些编程语言编写应用程序的程序员被成为后端程序员。

后端程序员主要考虑的是业务逻辑、数据库表结构设计、服务器配置、负载均衡、数据存储等。相对于前端,后端所采用的技术更为复杂,同时由于涉及的信息安全等级更高,所以面临的安全威胁也更多,后端面临的威胁主要来自于代码漏洞,攻击者可能会利用这些漏洞实现信息盗取或者取得系统控制权等目的。

RCE漏洞挖掘经验分享(一)_xiaofengdada的博客-CSDN博客

RCE漏洞挖掘经验分享(一)_xiaofengdada的博客-CSDN博客


三、研究WEB应用程序的工具

(一)黑盒工具

对Web应用程序的黑盒测试,是指将整个Web服务器模拟为不可见的“黑盒”,通过在浏览器中输入数据,来观察数据输出,检查web应用程序功能是否正常。其中最有名的一款软件叫BurpSuite,它是一款经典的web应用程序安全测试平台,其中包含了许多工具。

(二)白盒测试工具

白盒指的是盒子是可视的,即清楚盒子内部的内容以及运作的流程。进行白盒测试时,测试者可以查看web应用的全部代码。对web应用程序进行白盒测试的工具主要是代码审计工具,通过审计工具可以提高漏洞分析以及代码挖掘的效率。推荐的两款审计工具是RIPS和Fortify SCA。

WEB应用程序的开发和研究相关推荐

  1. Web应用程序的开发步骤

    Web应用程序的开发步骤 如今已进入了web2.0高速发展的互联网时代,各种互联网的Web应用程序如雨后春笋般出现.那么作为一名Web开发人员,怎样去开发一款优秀的Web应用程序呢?这个问题没有一个简 ...

  2. 【转】Microsoft Graph Web应用程序极致开发体验

    前言 这篇文章最早写于2017年5月2日,当时的想法是从最简单的方式来写如何在一个ASP.NET MVC应用程序中集成Microsoft Graph,但实际上还真不是那么简单,至少我是不满意的,加上这 ...

  3. web前端模块化开发_真正的模块化Web应用程序:为什么没有开发标准?

    web前端模块化开发 OSGI , SpringSource , Jboss模块 ,J2EE和清单永远不会结束.所有这些技术都向他们的最终用户/开发人员保证了相同的东西,或多或少是Java模块化Web ...

  4. 真正的模块化Web应用程序:为什么没有开发标准?

    OSGI , SpringSource , Jboss模块 ,J2EE和清单永远不会结束.所有这些技术都向他们的最终用户/开发人员保证了相同的东西,或多或少是Java模块化Web应用程序(?). 但是 ...

  5. node.js 静态属性_如何使用静态站点和Node.js开发和部署第一个全栈式Web应用程序

    node.js 静态属性 This tutorial will show you how to convert a static website that uses HTML, CSS and Jav ...

  6. 如何开发Web应用程序(非网站)

    看到这篇原文说,web应用程序和网站的开发不一样,收藏学习一下 这是一个经常被问到的问题,问的理所当然.作为一个程序员,为什么我就非要被认为知道如何开发Web应用程序呢?这个问题没有一个简单的答案,甚 ...

  7. Web应用程序体系结构– Spring MVC – AngularJs堆栈

    Spring MVC和AngularJs共同为构建表单密集型Web应用程序提供了一个真正高效且吸引人的前端开发堆栈.在这篇博客文章中,我们将看到如何使用这些技术构建表单密集型Web应用程序,并将这种方 ...

  8. freemarker中运算符_如何在Web应用系统表示层开发中应用Velocity模板技术

    软件项目实训及课程设计指导--如何在Web应用系统表示层开发实现中应用Velocity模板技术 1.分离Web表示层的数据处理和展现逻辑的常见的应用技术 分离Web表示层的数据处理和展现逻辑是目前企业 ...

  9. ASP.NET MVC: 构建不带 Web 窗体的 Web 应用程序(转载)

    我 从事专业开发迄今为止已有 15 年,在此之前,我利用业余时间从事开发至少也有 10 年了.与我这一代的大多数人一样,我是从 8 位计算机起步,然后转用 PC 平台的.随着计算机的复杂性日益增加,我 ...

  10. 你可能错过的关于 Windows 应用程序软件开发的 3 个趋势

    在最近对 65 000 名开发人员的调查中,StackOverflow 发现 Windows 仍然是最常用的应用程序开发平台.这部分是因为Windows 应用程序开发满足用户在选择平台之前必须考虑的四 ...

最新文章

  1. 2022-2028年中国汽车内饰行业市场需求与投资规划分析报告
  2. SpringBoot+WebSocket实时监控异常
  3. 解决Xshell 连不上ubuntu系统
  4. C++常用函数的使用方法小结
  5. 软件设计模式—面向接口编程
  6. Vue UI 框架对比 element VS iview
  7. CSS中可继承的属性
  8. tomcat是否有必要配置环境变量(摘)
  9. JavaScript服务器端开发技术(对象属性的枚举与查询)
  10. python 魔法方法之:__getitem__ __setitem__ __delitem__
  11. 询问区间内最大值-最小值
  12. 企业数字化转型需注意什么
  13. 2. laravel 创建第一条路由
  14. vnc远程桌面,vnc远程桌面使用教程图解
  15. 智能仓储系统作业流程及价值
  16. 华为回应出售手机业务传闻:假消息;微软将ChatGPT整合到更多工具中:不用写代码就能开发应用;苹果更新Mac产品线|极客头条
  17. 力扣解法汇总720-词典中最长的单词
  18. 网页控制台控制视频倍速
  19. 大象转身 | 沃尔玛搅局社区团购
  20. 利用认知偏差打造用户体验

热门文章

  1. (CNVD-2021-49104) 泛微E-Office v9.0任意文件上传漏洞
  2. 联想服务器引导盘制作工具,联想(Lenovo)服务器System X 系列无法进入引导盘Server Guide的解决方案 - 王耍耍...
  3. FileUpload1.PostedFile.FileName 获取的文件名
  4. 1.1信息安全基础概念
  5. md5 java_JAVA使用MD5加密解密
  6. Saleh-Valenzuela 毫米波信道模型
  7. 用 Dev-C++ 编写简单的平均数/中位数/众数/方差/一元线性回归方程计算器(附带控制台颜色设置,选择界面)
  8. 3串锂电池充电保护板设计
  9. 手把手系列--华邦W25Q64JV Flash操作指南
  10. 上采样(upsampling)(图像内插)——最邻近内插法、双线性内插法与双三次内插法