看好你的门-客户端传数据(2)-不安全的URL参数
来源:互联网 发布:json格式的日志 编辑:程序博客网 时间:2024/05/17 12:50
首先需要声明,本文纯属一个毫无远见和真才实学的小小开发人员的愚昧见解,仅供用于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、 通过拦截服务器对数据直接进行修改。
- 看好你的门-客户端传数据(2)-不安全的URL参数
- 看好你的门-客户端传数据(1)-不安全的隐藏表单字段
- 看好你的门-客户端传数据(3)-不安全的http信息头
- 看好你的门-客户端传数据(6)-不安全的cookie
- 看好你的门-客户端传数据(7)-不安全的固定加密
- 看好你的门-客户端传数据(8)-不安全的HTML表单限制
- 看好你的门-客户端传数据(9)-不安全的js脚本限制
- 看好你的门-客户端传数据(10)-不安全的HTML禁用元素
- 看好你的门-客户端传数据(10)-不安全的HTML禁用元素
- 看好你的门-客户端传数据(4)-利用浏览器调整http的referer
- 看好你的门-客户端传数据(3)附录-http信息头说明
- 看好你的门-客户端传数据(5)-用java修改referer
- 看好你的门-攻击数据存储区(2)-SQL注入常用的一些技巧
- 看好你的门-保护数据存储区(2)-查看PreparedStatement最终执行的SQL
- 看好你的门-攻击服务端(4)-HTTP参数注入攻击
- 看好你的门-攻击服务端(5)-对HTTP参数污染进行攻击
- 看好你的门-攻击数据存储区(3)-攻击PreparedStatement的执行
- 看好你的门-攻击数据存储区(1)-SQL拼接被避开登陆
- 开源 java CMS - FreeCMS2.3 互动信件
- 用unity来写 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程 找出1000以内的所有完数
- 用unity来写 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
- linux下最简单的禁ping方法
- Android Lollipop 新特性 -- Palette RoundedBitmapDrawable
- 看好你的门-客户端传数据(2)-不安全的URL参数
- C/C++ 使用递归算法实现汉诺塔
- 用unity来写 二维数组编写程序定义一个二维数组arr,该数组一共有4行3列,如下表所示,请把下表中的所有对应数据利用赋值语句赋值到该二维数组arr中去arr 第0列第1列第2列第0行第1行第2行第
- 简单的布局及简单的UI控件介绍
- 根据条件更新序列号
- UI控件和Activity生命周期说明
- 头部——MimeHeaders
- Activity之间的数据传递 任务和回退栈
- unity——C#多接口类继承