您的位置:首页 > 其它

看好你的门-客户端传数据(2)-不安全的URL参数

2015-03-06 08:19 176 查看
首先需要声明,本文纯属一个毫无远见和真才实学的小小开发人员的愚昧见解,仅供用于web系统安全方面的参考。

1、 简单说明

应用程序通常以终端用户无法直接查看或者修改的方式向服务器传送数据。很多的时候,开发者都优先考虑实现基本效果,而很少去考虑我们所采用的传输机制能够确保数据在传输过程中不会被修改。

在互联网中,大量的数据通过URL参数的方式进行传递,大部分的数据,是没有通过加密进行传输。在我所了解到的情况,大部分的数据是通过明码进行…

2、 优点:

不用追踪用户会话中的数据,减少保持在服务器上的数据,提高服务器处理的性能;

大型系统中,都会使用负载均衡,还能降低负载均衡设备的压力;

降低其他组件的复杂性;

开发、联调方便;

其他优点…

3、 URL参数传递

用户浏览产品目录的时候,一般系统都会给用户指派一个URL,类似下面:

http://127.0.0.1:8080/webStudy/url.jsp?price=2199&code=p7

当然,如果包含参数的URL显示在浏览器地址栏中,很多人知道,这个好像是不太安全的。当然,我们也要相信这种情况肯定有,不过应该是极少数。

很多种的情况,是我们不希望用户直接查看的,我们会用一些其他的方法,比如系统通过弹出窗口或者隐藏浏览器地址的方式来进行貌似高安全的方法。

一些购物网站也是这样做的,通过隐藏字段来保持商品的价格。以前这种做法很常见,现在是否消失,我也不确定…

4、 通过URL参数传递的源代码

url.jsp

<%@ page language=”java” import=”java.util.,javax.servlet.http.” pageEncoding=”UTF-8”%>







看好你的门-阿饭同学





登陆成功,欢迎来自<%=(String)request.getRemoteAddr()%> 的用户。



购买了华为手机,

型号为:<%=(String)request.getParameter(“code”)%>

单价<%=(String)request.getParameter(“price”)%>



在浏览器上输入:http://127.0.0.1:8080/webStudy/url.jsp?price=2199&code=p7

显示:

登陆成功,欢迎来自127.0.0.1 的用户。

购买了华为手机,

型号为:p7

单价2199

5、 被攻击

虽然价格字段没有显示在屏幕上,看起来用户也不能去修改。 但是客户端的一切最终操作都是用户控制,用户编辑这个价格就可以解除这个限制。

1、 最简单的方法,点击右键获得这个隐藏的URL参数,然后把这个参数进行修改,然后载入浏览器,那么结果就发生了变化; 比如:http://127.0.0.1:8080/webStudy/url.jsp?price=122&code=p7

2、 通过拦截服务器对数据直接进行修改。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: