转:Web页面经过URL地址传递参数常见问题及检测方法


Web页面即咱们在浏览器中所看到的网页,在Web应用程序中,其页面每每须要进行动态切换和数据交互,页面间的数据常规传递方法有多种,本文主要介绍Web页面处理程序中常见的URL地址参数传递方法,包括概述其实现原理、特色和常见问题,最后介绍检测该方式常见应用问题的测试思路和方法。
web

1.web页面的概念

       Web是internet上一个很是重要的资源信息网,产生于20世纪90年代初,它遵循超文本传输协议,以超文本或超媒介的形式传送各类各样的信息,为用户提供了一个具备友好的图形化界面——Web页面,以便用户阅读internet上的信息文档。Web页面实际上是一个单一的文件,其特色主要表如今:
       1)Web是图形化的和易于导航的。Web能够在一页上同时显示色彩丰富的图形和文本的性能,同时Web很是易于导航,它能够在各页各站点之间进行浏览了。
       2)Web与平台无关。不管你的系统平台是什么,你均可以经过Internet访问WWW。
       3)Web是分布式的。大量的图形、音频和视频信息能够放在不一样的站点上。只须要在浏览器中指明这个站点就能够了。
       4)Web 是动态的。Web站点的信息包含站点自己的信息,信息的提供者能够常常对站上的信息进行更新,Web动态的特性还表如今Web是交互的,经过超链接能够链接任意能够链接的页面,从服务器方得到动态的信息。 算法

2.URL地址传递参数方法概述

        Web页面是动态和交互的,Web页面之间的数据交换每每存在一些参数的传递,不论是经过哪一种语言平台编写Web页面处理程序,其参数传递的方式方法相似,且多种多样,常见方式主要包括经过URL地址、Application/Session、Cache、Cookie以及基于服务器文件或数据库等。
URL地址传递参数方式在咱们Web页面程序处理中很是常见,其形式是在页面地址后面附带参数的方式浏览页面,如:“http://test.net/Expert/PostNew.asp?room=301”,其中“room=301”即咱们传递的参数名称和值。URL地址方法能够很方便的在页面之间切换并传递参数,无需额外的处理,基于正常状况下不会产生性能损失,以Asp.net程序中URL参数传递处理为例,其简单处理过程以下:
发送页面处理程序a.aspx:
Send_url = “b.aspx?name=” + paraValue;
Response.Redirect(s_url);
接收页面处理程序b.aspx:
Receive_value=Request.QueryString["name"];
URL地址传递参数方式特色主要表如今如下几个方面:
1)URL地址法简洁易用,可同时传递多个字符型参数;
2)URL地址法能够很方便的在页面之间切换并传递参数,无需额外的处理,基于正常状况比较不会性能损失;
3)URL传递参数长度受限,最大为2K;
4)URL只能传递字符型参数;
5)信息泄露:URL地址在客户端可见,致使会泄露信息,可能被黑客用来攻击系统。 数据库

3.URL地址传递参数常见应用问题

1)因URL传递参数长度受限,最大为2K,在应用中可能会出现超出范围时的处理错误;
2)URL只能传递字符型参数,在应用中,常常会传递一些中文名的参数或URL地址,由于发送页面和接收页面的字符编码方式不同而致使参数解析处理错误,参数包含中文时出现乱码或者参数接收错误;
3)Web程序中对字符编码的方法多种多样,可是有些方法对一些特殊字符,如:! @ # $& * ( ) = : / ; ? + '中的某些不能进行编码,所以对参数中包含某些特殊字符时不能正确处理,当参数中包含这些特殊字符时,软件接收处理出现异常;
4)URL能够传递必定长度大小字符型参数,在应用中常常经过URL接收的参数须要进一步进行逻辑处理,好比类型转换或者数字计算操做等,处理过程当中开发人员可能会对参数在界面输入时限制处理不充分,并且开发人员在后续逻辑处理中过度信任传递过来的参数而未进行充分逻辑判断,致使在后续的逻辑处理中出现边界处理或者类型转换的错误,致使程序出现异常甚至崩溃;
5)URL地址中的参数常常与数据库SQL语句中的参数关联,若是开发人员对SQL语句参数化处理不完善,经过URL地址传递参数也容易引发SQL注入问题,参数中包含特殊字符、类型或者长度不符合要求时致使程序出错,甚至能够经过这个入口破坏或者获取数据库信息;
6)URL显示传递参数,容易产生信息泄露问题,一些关键信息URL地址在客户端可见,这些信息可能被黑客用来攻击系统。 浏览器

4.URL地址传递方式常见问题测试方法

      针对采用URL地址传递参数的Web程序,为发现及解决其应用问题,咱们经过如下几个方面进行测试:
1)分析软件需求,是否须要处理超过2K大小的参数,如须要则经过Web界面控件或者URL输入超出2K大小参数进行测试,经过这种方式能够发现软件是否能够正常处理超出2K大小参数的需求问题;如无需求也能够经过此测试检测软件在参数大小超过2K时是否进行了相应的限制或者错误处理;
2)经过Web界面控件或者URL输入中文字符参数进行测试,检测软件在接收页面处理是否正常,是否出现乱码或者异常错误;
3)经过Web界面控件或者URL输入各类特殊字符,例如:! @ # $& * ( ) = : / ; ? + '等,检测软件接收处理是否正常,是否能够显示处理必须的特殊字符;
4)经过Web界面控件或者URL输入参数边界值,同时包括输入各类类型参数,检测软件运行是否正常;
5)经过Web界面控件或者URL输入包含跟数据库SQL语句相关的一些特殊字符参数如’= 和一些关键字符串等,检测软件是否存在SQL注入问题,同时也能够采用一些安全测试工具,对URL输入参数进行SQL注入的渗透测试;
6)检测URL参数中是否包含关键信息,并可经过获取信息经过安全测试工具进行恶意破坏或者攻击测试。 安全

5.应用建议

     针对URL地址传递参数应用问题,在应用中有以下建议:
1)在安全性要求较高的系统中不推荐使用这种方法,只适合在一些安全性要求不高,页面逻辑比较的简单的场合;
2)对参数长度超出2K的传递建议不要采起此方式;
3)对地址信息进行编码,且保证发送页面和接收页面编码和解码方式对应一致;
4)对从URL地址中接收的参数信息进行边界和类型校验;
5)为防止信息泄露,对URL传递的参数进行加密处理,同时须要考虑加密和解密过程的性能损失;
6)为防止信息泄露,也可对URL进行重写,通过必定算法重组的URL信息,使在IE中不显示真正的参数或者网页连接信息。 服务器

总结

       Web页面参数传递方式多种多样,各有优缺点,用户在开发和测试过程当中,针对各自特色选择相应方式进行设计和相关处理。在Web页面处理程序测试过程当中,测试人员应先充分了解Web页面参数传递采用的方式,若是采用URL地址进行参数传递,则根据其特色和应用中常见的问题,采用正确的方法进行测试,以解决各类应用问题,提升Web应用程序的质量。分布式

相关文章
相关标签/搜索