黑客攻防技术宝典-Web实战篇——第三章、Web应用程序技术(Web功能)(二)

第三章、Web应用程序技术(Web功能)(二)

服务器端要接受用户输入,并向用户返回结果。所以他必须提供一个客户端用户界面。因为用户通过浏览器访问,所以用户界面的技术是基于浏览器的。

HTML

超文本标记语言,是web界面的核心技术。是描述浏览器显示的文档结构的基于标签的语言。

超链接

超链接驱动服务器与客户的通信。通常超链接包含预先的请求参数。这些些参数是服务器自动插入而无需用户操作。
如下:

Sale now on!
//当用户单击此超链接时,浏览器会提出以下请求
//GET "/news/showStory/?newid=8236748&lang=zh" HTTP/1.1
  HOST:

服务器收到newid和lang这两个参数

表单

表单是一种常见的前后端通信方式。
例如:

username:
password:

上述代码的显示
当点击“提交”按钮时,浏览器将提出以下请求:

POST /login.php?app=qwer HTTP/1.1
HOST:
Content-Type:
Content-Length:
Cookie:

username=admin&password=admin&redir=/login.php&submit=login
//1.这个请求中包含POST请求方法,浏览器用POST提交表单,并将表单数据存入消息主体
//2.隐藏参数redir和提交参数submit也一起提交
//3.URL中包含预先设定的参数app用于控制处理过程
//4.请求中的cookie参数也用于控制处理数据过程

JavaScript

客户端不仅用来提交用户数据,也用来用户处理。
这样的优点:

  • 提高应用程序性能:服务端处理变少了
  • 提高可用性:动态调整用户界面,无需传送全新HTML页面

JavaScript执行以下任务

  • 向服务器提交前确认用户的数据
  • 根据用户操作动态修改页面
  • 查询并更新浏览器内的文档对象模型(Document Object Model,DOM),控制浏览器行为

AJAX可以从HTML页面发布动态HTTP请求,与浏览器交换数据并更新Web页面。 AJAX执行不当会有漏洞从而受到攻击。

厚客户组件

用于改善JavaScript功能

  • Java Applet
  • ActiveX控件
  • Shockwave Flash 对象

状态与会话

  1. 服务器与客户端交换数据
  2. 为了一些功能,例如购物程序需要个人的支付信息,所以需要追踪每名用户的交互状态
  3. 为了实现这种功能,服务器上保存一组数据结构:会话,当用户操作时,服务器更新在会话中的相关信息并返回
  4. 有些状态信息保存在客户端。所以交换状态信息时容易被攻击者篡改。ASP.NET用ViewState这种隐藏字段来保护状态信息的安全。
  5. 因为HTTP请求本身没有状态,为了正确处理数据,应用程序需要某种方法确认用户身份。令牌就是一种标识。通常令牌包含在cookie中。

会话处理中有漏洞,后续会有描述

下一章:编码方案

你可能感兴趣的:(黑客攻防技术宝典-web实战篇)