首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

何时以及为什么要使用$ _REQUEST而不是$ _GET/$ _POST/$ _COOKIE?

$ _REQUEST 是一个用于在 PHP 脚本中处理请求参数的特殊全局变量。它不同于其他全局变量 ($_GET、$_POST 和 $_COOKIE),它们是在发送 GET、POST 或 COOKIE 请求时传递的数据。如果在一个 HTTP 请求中存在用户输入的数据以及 Cookie 数据,则这些值会作为参数保存在 $ _REQUEST 中。这使得在 PHP 脚本中操作 HTTP 请求参数变得非常容易。

$ _REQUEST 的主要优势包括:

  1. 方便性:$ _REQUEST 可以将用户输入的数据和 Cookie 数据组合在一起,并且在脚本内部可以直接访问它们。
  2. 可读性:由于 $ _REQUEST 中包含了用户输入的数据,因此这些数据的可读性更强。如果数据是通过 POST 或 GET 发送的,则可以很容易地在脚本中找到并将其用于不同的用途。
  3. 避免使用 $_GET/_POST/_COOKIE:使用 $ _REQUEST 可以避免使用 $_GET、$_POST 和 $_COOKIE 引入的潜在问题。例如,如果未初始化变量或字符串包含特殊字符,可能会引发变量未定义或脚本注入攻击。

应用场景包括:

  1. 创建数据库:可以通过 $ _REQUEST 来获取用户输入的数据,从而创建一个数据库。
  2. 网站统计和分析:可以使用 $ _REQUEST 来收集和分析用户行为和信息,并用于网站优化和广告投放。
  3. 用户验证:可以使用 $ _REQUEST 来对用户进行身份验证,以确保只有授权用户可以访问某些功能或服务。
  4. 处理表单:可以使用 $ _REQUEST 来处理用户从表单中提交的参数,并用于页面渲染或 API 调用。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

简述php的垃圾收集机制

4.POSTGET有什么区别 1 、GET把参数包含在URL中,POST通过request body传递参数。 2、GET在浏览器回退时是无害的,POST会再次提交请求。...GET产生的URL地址可以被Bookmark,POST不可以。GET请求会被浏览器主动cache,POST不会,除非手动设置。GET请求只能进行url编码,POST支持多种编码方式。...也就是说,GET只需要汽车跑一趟就把货送到了,POST得跑两趟,第一趟,先去和服务器打个招呼“嗨,我等下送一批货来,你们打开门迎接我”,然后再回头把货送过去。...因为POST需要两步,时间上消耗的多一点,看起来GETPOST更有效。因此Yahoo团队有推荐用GET替换POST来优化网站性能。但这是一个坑!跳入需谨慎。为什么?1....并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

50920

前端面试题ajax_前端性能优化面试题

8,请解释 JSONP 的工作原理,以及为什么不是真正的 AJAX。 jsonp的工作原理是,动态的创建了一个全局方法,并且动态生成script标签,将script标签的src属性变为(接口地址?...当被浏览器半信半疑的脚本运行在沙箱时,它们应该只被允许访问来自同一站点的资源,不是那些来自其它站点可能怀有恶意的资源。 这里的同源指的是:同协议,同域名和同端口 10,为什么要有同源限制?...保障了传输过程的安全性 14、GETPOST的区别,何时使用POST?...GET方式需要使用Request.QueryString来取得变量的值,POST方式通过Request.Form来获取变量的值,也就是说Get是通过地址栏来传值,Post是通过提交表单来传值。...然而,在以下情况中,请使用 POST 请求: 无法使用缓存文件(更新服务器上的文件或数据库) 向服务器发送大量数据(POST 没有数据量限制) 发送包含未知字符的用户输入时,POSTGET

2.4K10

Servlet请求和响应

这个方法会确定HTTP方法(GET or POST),并调用对应的servlet方法——doGet或doPost; 是否会被覆盖?可以,但是不会 doGet()或doPost() 何时调用? 作用?...GETPOST的区别 POST方法有请求体 GET方法的查询参数直接跟在URL后面,不够安全; GET请求可以建立书签,POST请求则不能 GET请求是幂等的,POST请求不是GET请求仅仅用于查询一些数据...getIntHeader(),如果首部信息中的“key/value”对中的value是int类型的,可以使用这个方法直接获取值不需要显式类型转换 getCookies(),可以获取与请求相关的cookie...不过,你也可以使用响应设置首部、发送错误或增加Cookie。...cookie),给响应首部中增加cookie对象,注意这里不是增加“key/value”对 addHeader(),在响应首部中添加一个“key/value”对 setHeader(),在响应首部中设置一个

88230

爬虫学习之第一章网络请求

为什么用Python写爬虫程序: PHP:PHP是世界是最好的语言,但他天生不是做这个的,而且对多线程、异步支持不是很好,并发处理能力弱。爬虫是工具性程序,对速度和效率要求比较高。...HTTP请求主要分为“Get”和“Post”两种方法。...但是有的网站和服务器为了做反爬虫机制,也经常会不按常理出牌,有可能一个应该使用get方法的请求就一定要改成post请求,这个视情况而定。...使用cookielib库和HTTPCookieProcessor模拟登录: Cookie 是指网站服务器为了辨别用户身份和进行Session跟踪,储存在用户浏览器上的文本文件,Cookie可以保持登录信息到用户下次与服务器的会话...使用代理: 使用requests添加代理也非常简单,只要在请求的方法中(比如get或者post)传递proxies参数就可以了。

62210

CORS 完全手册之 CORS 详解

Day2:不简单的CORS 隔了一天之后,主管跟小明说更上层的人不满意这个使用者体验,送出表单之后要等个一两秒才能看到成功的画面,而且这中间也没有loading 什么的,体验不好,希望能改成AJAX 的做法送出表单不是换页...,后端走过来跟小明说:「不好意思,我们后端最近做了一些改动,未来统一改成用JSON 当作资料格式,所以你那边也要改一下,送JSON 过来不是urlencoded 的资料」 小明听了之后心想:「这简单嘛...跨来源的请求只接受三种HTTP Method:GET、HEAD以及POST,除了这三种之外,都必须由后端回传一个Access-Control-Allow-Methods,让后端决定有哪些method可以用...Day5 总结 如果前端要使用GET、HEAD以及POST以外的HTTP method发送请求的话,后端的preflight response header必须有Access-Control-Allow-Methods...前端如果要使用HEAD、GETPOST之外的method,后端加上Access-Control-Allow-Methods。

1.5K31

☀️苏州程序大白一文让你学会Java Servlet基础☀️《❤️记得收藏❤️》

Servlet 不是线程安全,因此谨慎使用类变量。 2、阐述 Servlet 和 CGI 的区别? CGI 的不足之处: 1、需要为每个请求启动一个操作 CGI 程序的系统进程。...get 请求 用来从服务器上获得资源, post 是用来向服务器提交数据。比如你获取人员列表可以用 get 请求 ,你需要创建一个人员可以用 post 。...最直观的区别就是 GET 把参数包含在 URL 中,POST 通过 request body 传递参数。 GET 在浏览器回退时是无害的, POST 会再次提交请求。...也就是说,GET 只需要汽车跑一趟就把货送到了, POST 得跑两趟,第一趟,先去和服务器打个招呼 “嗨,我等下送一批货来,你们打开门迎接我”,然后再回头把货送过去。...因为 POST 需要两步,时间上消耗的多一点,看起来 GETPOST 更有效。因此 Yahoo 团队有推荐用 GET 替换 POST 来优化网站性能。但这是一个坑!为什么

1.5K30

Next.js,到底为什么这样对我?

但是为什么只提供访问 cookie 和 header 的 API 呢?为什么不导出一个 request()方法,它返回一个 Request 对象或请求上下文?...好吧,使用应用路由器你甚至在任何时候渲染页面时都没法设置 cookie,即使是在 Node.js 环境下。等等,我们为什么不能使用 cookies()方法呢?...为什么它总是运行在 Edge 上呢?为什么限制它不允许运行数据库查询或使用 Node.js 模块呢?...为什么这样设计? 所有这些小问题积累起来,作为一个库的作者,支持 Next.js 很困难,有时候几乎是不可能的。...缓慢的启动和编译时间,以及容易出 Bug 的开发服务器,都让使用 Next.js 整体上不是很愉快。我还没有提缓存,这是另一个让人头疼的问题。

38420

程序猿必读-防范CSRF跨站请求伪造

以你的名义发送诈骗邮件,消息 用你的账号购买商品 用你的名义完成虚拟货币转账 泄露个人隐私 … 产生原理以及利用方式 完成一个CSRF攻击,必须具备以下几个条件: 受害者已经登录到了目标网站(你的网站...GET请求利用 使用GET请求方式的利用是最简单的一种利用方式,其隐患的来源主要是由于在开发系统的时候没有按照HTTP动词的正确使用方式来使用造成的。...但是事实上并不是如此,很多网站在开发的时候,研发人员错误的认为GET/POST使用区别仅仅是在于发送请求的数据是在Body中还是在请求地址中,以及请求内容的大小不同。...POST请求利用 相对于GET方式的利用,POST方式的利用更加复杂一些,难度也大了一些。攻击者需要伪造一个能够自动提交的表单来发送POST请求。...你可能会感到疑惑,为什么GET请求也要放行呢?这是因为Laravel认为这三个请求都是请求查询数据的,如果一个请求是使用GET方式,那无论请求多少次,无论请求参数如何,都不应该最数据做任何修改。

2.4K20

网络爬虫之投票

这里需要说明的是HTTP请求分为POSTGET等方式(具体可以百度之),凡是通过浏览器直接输入地址显示出来的页面肯定都是GET请求,像投票请求两种方式均有可能,登录请求基本上可以肯定是POST。...POSTGET的不同就在于POST能够提交表单数据,所以需要我们根据自己的用户名密码等拼接表单数据。...所以是不是很容易,如果你的投票就是点一下就能投的类型,恭喜你,通过上面的代码加一个循环你就可以开启疯狂刷票模式。但是事与愿违,很多投票都不是那么简单,最大的障碍就是有些投票先登录。...3.5 字符串处理        在这讲述伟大的爬虫的时候我为什么再讲字符串处理呢,其实这次爬虫投票器差点就在字符串处理这个问题上前功尽弃,几乎已经开始构思更牛逼的方法。...尤其还需要注意细节,以及坚持,如果不是多实验了一次发现Substring的这个问题,恐怕也就没有这篇文章了。 五、后记        各位看官写个投票器是不是很容易?

2.5K60

Android使用OkHttp进行重定向拦截处理的方法

为什么要做这样的一个东西呢?比如说课程表的查成绩功能,就可以使用这种方法来获取成绩。 大概的原理是怎样的呢?...请求头字段,有了Cookie浏览器就可以通过GET请求访问登录后的网页,注意没有这个Cookie是无法请求登陆后的网页的,GET请求必须设置Cookie请求头字段,将服务器返回的Cookie携带过去。...明白了浏览器的行为之后,我们知道需要做的步骤就是4步: 自己做POST请求,并且不让它自动重定向 我们拿到POST请求返回来的响应,获取对应的Set-Cookie字段的内容 将该对应的内容添加到GET请求的...我们点击(pass.asp)这个请求,然后查看它的POST的请求头(点击Headers)。 ? 我们看到了一堆的Set-Cookie字段,字段对应的内容就是我们携带做GET请求的 ?...接下来使用OkHttp进行操作 由于OkHttp提供了自动携带Cookie进行请求的功能,于是我们可以很方便地进行处理了。

2.2K41

django会话跟踪技术

删除cookie session 为什么用session不是cookie session的其他方法 session的设置 基于session上次登陆时间 django中的会话跟踪技术 什么是会话跟踪技术...使用HTTP协议,每当有新的请求发送时,就会有对应的新响应产生。协议本身并不保留之前一切的请求或响应报文的信息。这是为了更快的处理大量事务,确保协议的可伸缩性,特意把HTTP协议设计的如此简单的。...def login(request): if request.method == 'POST': user = request.POST.get('user')...为什么用session不是cookie session基于cookie实现的会话跟踪,cookie存放在客户端一旦丢失的话就会对用户的数据构成威胁。 我们来看一下cookie的保存: ?...== 'POST': user = request.POST.get('user') pwd = request.POST.get('pwd') user

81020

安全|常见的Web攻击手段之CSRF攻击

某大型论坛B上,一个恶意用户上传了一张图片,图片的地址栏中填的并不是图片的地址,而是前所说的砖账地址:标签需要浏览器发起一个新的HTTP请求,以获得图片资源,当浏览器发起请求时,请求的却是银行...当然,绝大多数网站都不会使用GET请求来进行数据更新,因此,攻击者也需要改变思路,与时俱进。...1.3、CSRF的防御 1、尽量使用POST,限制GET GET接口太容易被拿来做CSRF攻击,看上面示例就知道,只要构造一个img标签,img标签又是不能过滤的数据。...接口最好限制为POST使用GET则无效,降低攻击风险。 当然POST不是万无一失,攻击者只要构造一个form就可以,但需要在第三方页面做,这样就增加暴露的可能性。

2K80

flask 教程_python flask快速入门与进阶

其中 if __name__ ==’__main__’: 确保服务器只会在该脚本被 Python 解释器直接执行的时候才会运行,不是作为模块导入的时候。...POST']) def add_elasticsearch(): city_name = request.form.get('city_name') diagnose_people = request.form.get...request.args.get()”方法则可以获取Get请求URL中的参数,该函数的第二个参数是默认值,当URL参数不存在时,则返回默认值。在后文的请求对象会讲到。...在 Flask 中由全局的 request 对象来提供这些信息。如果你有一定的 Python 经验,你会好奇,为什么这个对象是全局的,为什么 Flask 还能保证线程安全。答案是本地环境。...访问 cookies ,可以使用 cookies 属性。

1.9K40

面试题之Javaweb篇(一)

1,request.getParameter()取得是通过容器的实现来取得通过类似postget等方式传入的数据。...,因为静态包含只是将被包含的页面的内容复制到包含的页面中去;动态包含包含页面和被包含页面不是同一个页面,被包含的页面的request对象可以取到的参数范围相对大些,不仅可以取到传递到包含页面的参数,...和post方法的区别 1,Get是向服务器发索取数据的一种请求,Post是向服务器提交数据的一种请求 2,Get是获取信息,不是修改信息,类似数据库查询功能一样,数据不会被修改...PostGet安全,当数据是中文或者不敏感的数据,则用get,因为使用get,参数会显示在地址,对于敏感数据和不是中文字符的数据,则用post。...6,POST表示可能修改变服务器上的资源的请求,在服务器端,用Post方式提交的数据只能用Request.Form来获取。 (仅供参考,如果有更好的回答,欢迎探讨) 8,什么是cookie

61620

小白学爬虫系列-基础-requests详解

上面的访问使用最基本的 get 请求,那如果我加访问参数呢?...(url=url, files=upload_file) 2. cookie配置 咦,小一哥,你怎么又提到了 cookie ,上节不是说过了吗?...当你成功登录一个网站的时候,你可以将本次登录的 cookie 保存在本地,等你下一次需要再次登录的时候,直接读取你本地的 cookie 内容,不用再次输入用户名、密码等,是不是很方便?...session 信息验证用户,不是通过本地 cookie。...为什么改成『小一』呢,我还想了挺久的,一直没想好。 后来想了想,我现在刚迈出自己的第一步,从0到1,也正好处于第一阶段,干脆就叫小一算了。 当然,小千小万也不是不可以? End

70020

开发者必藏:WordPress 数据转义是怎么处理的?

既然该特性已经被移除,我们为什么啰里啰嗦介绍半天呢?那是因为 WordPress 是一个生命力很强的程序,他在 PHP 很早期代码的时候就存在了。...$_GET = add_magic_quotes( $_GET ); $_POST = add_magic_quotes( $_POST ); $_COOKIE = add_magic_quotes...( $_COOKIE ); $_SERVER = add_magic_quotes( $_SERVER ); // Force REQUEST to be GET + POST....$_REQUEST = array_merge( $_GET, $_POST ); } 所以尽管 PHP 5.4 之后,魔术引号特性已经被移除,但是为了保持代码的一致性和兼容性,WordPress 这个操作一直保留下来...首先要记住: WordPress 的 _GET、_POST、_COOKIE、_SERVER 和  数据插入数据库之前,如果数据已经被转义,进行反转义操作,因为 WordPress 的数据库操作类有自己的转义函数

1.5K30

XSS 和 CSRF 攻击

完成一次CSRF攻击,受害者必须依次完成两个步骤: 1.登录受信任网站A,并在本地生成Cookie。 2.在不登出A的情况下,访问危险网站B。...原因是银行网站A违反了HTTP规范,使用GET请求更新资源。...$_REQUEST去获取请求的数据,$_REQUEST既可以获取GET请求的数据,也可以获取POST请求的数据,这就造成了在后台处理程序无法区分这到底是GET请求的数据还是POST请求的数据。...在PHP中,可以使用$_GET和$_POST分别获取GET请求和POST请求的数据。在JAVA中,用于获取请求数据request一样存在不能区分GET请求数据和POST数据的问题。 ...> 这个函数检测了$_SESSION[STOKEN_NAME]和$_REQUEST[FTOKEN_NAME]的存在性(我使用了$ _REQUEST方法来使得GETPOST两种方式提交的表单变量均能够被接受

1K10
领券