首页 > 其他分享 >Web安全入门与靶场实战(13)- Get方法和Post方法

Web安全入门与靶场实战(13)- Get方法和Post方法

时间:2023-01-22 10:31:08浏览次数:60  
标签:Web 13 传送 Get 网站 URL 方法 客户端

在上一节介绍了URL的基本概念,但其实URL中还有一个非常重要的概念没有介绍-URL中的参数。

比如一个完整的URL应当是如下格式:

http://www.test.com/index.php?id=1

“?id=1”就是URL中的参数,用于表示客户端要向网站传送的数据。

这个参数是通过Get方法传递给网站的,Get方法以及Post方法是我们接下来要重点学习的两个概念。

Get方法

在最早版本的HTTP协议中只提供了Get方法,也就是只允许客户端从网站获取(Get)数据。在绝大多数情况下,客户端浏览网站中的网页,的确只是在从网站中Get数据。

比如URL​​http://www.test.com​​就表示客户端请求访问网站的首页(index.php),此时数据只是从网站发给客户端,而客户端并没有向网站传送数据。

但在某些情况下,客户端也需要向服务器传送一些数据,比如要登录某个网站,那么客户端就需要向网站传送用户名和密码等数据。所以后来就对Get方法的功能进行了扩展,允许客户端通过Get方法向网站传送少量数据。

Get方法通过URL向网站传送数据,所以使用Get方法传递的数据会显示在浏览器地址栏中。

比如URL“​​http://www.test.com/index.php?id=1​​”就表示客户端请求访问网站的index.php页面,并用Get方法向网站传递数据“id=1”。

id是在服务器端事先定义好的一个参数,数值1就是客户端所传送的数据。

如果要同时传递多个参数,参数之间以&分隔,如id=1&name=admin。

客户端在使用Get方法时,是否需要向网站传送数据,这需要由网站开发人员根据实际需求来进行设置。

对于目前广泛使用的动态页面,页面的框架通常都是固定的,然后客户端向网站传送相应的参数,网站根据用户传递的不同参数在这个页面中显示相应的信息。

比如打开我们之前搭建的DVWA网站,选择其中的“SQL Injection”漏洞,在“User ID”中输入1,点击Submit,然后就在URL中通过Get方法将这两个参数传送给了网站。

Web安全入门与靶场实战(13)- Get方法和Post方法_get方法

然后在UserID中输入2或者3,可以发现随着参数的变化,页面中会随之显示相应ID的信息。但我们始终访问的是index.php这个页面,整个页面的架构没有变,变化的只是不同的参数所查询出来的数据。

Post方法

虽然客户端能够通过Get方法向网站传送数据,但是Get方法也有很多缺陷,主要体现在以下两个方面:

一是由于浏览器对URL的长度会有限制,所以Get方法通常只能用于向网站发送少量数据。如果要传送的数据量比较大,那么Get方法就无法满足要求了。

二是利用Get方法传送的数据会直接显示在浏览器地址栏中,这样就容易造成信息泄露,所以对于像用户密码这类数据就不适合使用Get方法来传送。

为了解决Get方法存在的上述问题,后来又引入了Post方法,从名字中就可以看出,这是一个专门用于客户端向网站传送数据的方法。

Post方法将要传送的数据放在HTTP请求报文的正文中,所以这些数据不会显示在浏览器地址栏中,不会造成信息泄露。

另外使用Post方法传送的数据也没有容量限制,可以用于向网站发送大量数据,所以在诸如用户登录、文件上传、留言提交等场景都会使用Post方法。

典型的Post请求报文如下图所示。

Web安全入门与靶场实战(13)- Get方法和Post方法_get方法_02

标签:Web,13,传送,Get,网站,URL,方法,客户端
From: https://blog.51cto.com/yttitan/6021447

相关文章

  • 【解决webpack-dev-server 动态配置代理问题】
    【解决webpack-dev-server动态配置代理问题】:https://code84.com/723524.html#devServerproxy_12 文章目录前言一、devServer-proxy二、配置方式1.配置多个......
  • vue3学习之---webpack配置【resolve.alias修改】
    在vue3中,脚手架生成的项目里,webpack的配置文件没有了,因为公共的配置被封装到安装包里了,可以找到如下目录,同样可以修改配置文件:node_modules》@vue》cli-service   ......
  • 使用Addressables.LoadAssetAsync<Asset>(target)加载unity资源,不止是gameobject
    要声明的方法:publicstaticasyncTask<string>ReadJsonData(stringtarget){  TextAssetjsonDataObject=awaitAddressables.LoadAssetAsync<TextAsset>(target).......
  • JAVAWeb学习
    1、基本概念web开发:web,网页的意思静态webhtml,css提供给所有人看的数据始终不会发生变化动态web淘宝,几乎所有的网站提供给所有人看的数据始终会发生变化,每个......
  • Web安全入门与靶场实战(12)- 统一资源定位符URL
    互联网中存在着无数的Web站点,在每个站点中都存放着大量的Web资源,那系统该如何区分用户准备访问的是哪个站点中的哪个资源呢?比如在Linux系统中我们要对某个文件进行操作,首先......
  • RTP封装h264,结合webrtc抓包分析
    作者:拔萝卜的大灰狼链接:https://zhuanlan.zhihu.com/p/402346767来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。一简介h264是目前使用......
  • SRS流媒体服务器——SRS4.0 WebRTC一对一通话环境搭建与逻辑分析
    目录环境搭建SRS4.0WebRTC1对1通话逻辑分析环境搭建1.安装go语⾔环境在Go语言官网找到对应的安装包(https://golang.google.cn/dl/)下载和解析(使用的是阿里云的Ub......
  • 【Javaweb】Servlet五 | HTTP协议【详解】
    什么是HTTP协议什么是协议?协议是指双方或多方相互约定好,大家都需要遵守的规则,叫协议。所谓HTTP协议,就是指,客户端和服务器之间通信时,发送的数据,需要遵守的规则,叫做HTTP协......
  • !wget问题
    解决方案:(25条消息)Debug|‘wget‘不是内部或外部命令,也不是可运行的程序或批处理文件。_买猫咪的小鱼干的博客-CSDN博客_wget'不是内部或外部命令,也不是可运行的......
  • web 看板量
    官网地址https://github.com/EYHN/hexo-helper-live2d<scriptsrc="https://cdn.jsdelivr.net/gh/wangsrGit119/wangsr-image-bucket/L2Dwidget/js/L2Dwidget.min.js">......