返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >在 PHP 中确定 referer
  • 639
分享到

在 PHP 中确定 referer

2024-02-27 21:02:42 639人浏览 八月长安
摘要

$_SERVER['Http_REFERER'] 为我们提供了引用 URL 来确定服务器上的用户请求。但是,这不是最佳实践,因为引用者可能会通过 HTTP 受到损害。 在 PHP

$_SERVER['Http_REFERER'] 为我们提供了引用 URL 来确定服务器上的用户请求。但是,这不是最佳实践,因为引用者可能会通过 HTTP 受到损害。


PHP 中使用 $_SESSioN[] 确定引用者

由于 HTTP_REFERER 可以被欺骗/伪造,php 允许我们使用会话/cookie 来确定传入的用户请求是否来自你的域(服务器)。

我们将为本文创建两个演示页面。

userrequest.php 代码:


<!DOCTYPE html>
<body>
  <fORM action ="determineuser.php" method ="post" align="center">
  <input type ="submit" name="click" value="Determine user request through session"/>

<?php
session_start(); //first we start session
$setsession = uniqid(mt_rand(), TRUE); //Set it true, assign mt_rand to ensure secuity
$_SESSION['set'] = $setsession;
//we can use url to export session over servers
$redirect = "determineuser.php?set={$setsession}"; // this url can be on any server
?>

<br>
<h1 align="center">

<?php
echo "Your current session is:".$_SESSION['set']; //check session on page 1
echo"<br>";
?>
</form>
</body>
</html>

determineuser.php 代码:


<?php
session_start(); //check if the session and form input is set
if ( (isset( $_SESSION[ 'set' ] ) && $_SESSION[ 'set' ] === TRUE ) || isset( $_POST[ 'click' ] ) ) {
echo "Determined Last visited page on the server using HTTP REFERER:<br>".$_SERVER['HTTP_REFERER'];
?>

<h1 align="center">
<p> This is the secure way to determine referer using session:</p>

<?php
echo $_SESSION['set'];//check session on page 2 (compare to determine from the last page)
?>

</h1>

<?php
  } else {
//if the domain referer is not determined, header function will redirect the user page to the last page
  header('Location:userrequest.php');
  exit; //exit to release unnessary server load
}
?>
</form>
</body>
</html>

输出:

在 PHP 中确定 REFERER

请务必注意,虽然确定 referer 的传统方法在大多数情况下并不可靠,但仍被广泛使用。为了更安全,我们建议使用 session 或 (ajax) 而不是 HTTP

--结束END--

本文标题: 在 PHP 中确定 referer

本文链接: https://lsjlt.com/news/569207.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 在 PHP 中确定 referer
    $_SERVER['HTTP_REFERER'] 为我们提供了引用 URL 来确定服务器上的用户请求。但是,这不是最佳实践,因为引用者可能会通过 HTTP 受到损害。 在 PHP ...
    99+
    2024-02-27
  • 在PHP中如何使用fsockopen方法伪造referer地址
    这篇文章给大家分享的是有关在PHP中如何使用fsockopen方法伪造referer地址的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。fsockopen$url="ht...
    99+
    2024-04-02
  • 在PHP中如何使用CURL方法伪造referer地址
    小编给大家分享一下在PHP中如何使用CURL方法伪造referer地址,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!CURL$u...
    99+
    2024-04-02
  • 在PHP中如何使用file_get_contents方法伪造referer地址
    这篇文章将为大家详细讲解有关在PHP中如何使用file_get_contents方法伪造referer地址,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。file_get_...
    99+
    2024-04-02
  • php中怎么通过获取referer防非法访问
    php中怎么通过获取referer防非法访问,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。面是我下载页面down.php 的php代码 现在我发现,用迅雷,谷歌浏览器...
    99+
    2023-06-20
  • 存储同步和重定向:如何在PHP中正确处理?
    在PHP开发中,存储同步和重定向是非常重要的概念。虽然它们看起来有些相似,但它们的作用和实现方式是不同的。在本文中,我们将深入探讨如何在PHP中正确处理存储同步和重定向,并提供一些示例代码来帮助您更好地理解。 一、存储同步 存储同步是指在多...
    99+
    2023-10-07
    存储 同步 重定向
  • 正确定义变量的方法在Golang中
    Golang中如何正确定义变量,需要具体代码示例 在Golang中,正确的变量定义是保证代码质量和可读性的关键之一。良好的变量定义能够增加代码的可维护性和可扩展性。本文将介绍Golang中如何正确定义变量,并...
    99+
    2024-01-18
  • 如何确定 PHP 函数在跨版本时是否兼容?
    使用php的函数兼容性工具或查阅兼容性表,可以确定php函数在跨版本时的兼容性:函数兼容性工具用于检查特定函数在不同php版本中的兼容性。兼容性表提供了每个函数在不同php版本下的状态列...
    99+
    2024-04-25
    php 兼容性 mysql
  • 如何在PHP中正确应用success方法
    在PHP中正确应用success方法 在PHP开发中,success方法是一种常用的处理成功请求的方式,通常用来返回成功的响应信息。正确使用success方法能够增加代码的可读性和维护...
    99+
    2024-04-02
  • 如何在PHP Dompdf中正确显示中文字符
    如何在PHP Dompdf中正确显示中文字符 在使用PHP Dompdf生成PDF文件时,遇到中文字符显示乱码的问题是一个常见的挑战。这是因为Dompdf默认使用的字体库中不包含中文字...
    99+
    2024-03-05
    中文 php dompdf
  • php对象参数不确定怎么办
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑php对象参数不确定怎么办?php不定参数方法(函数)和可选参数方法(函数)写代码的时候经常会用到方法,而且往往还是带有参数的方法,这些对我们来说都不陌生,然而有时候需要...
    99+
    2016-11-05
    php
  • CSS3中怎么确定背景的定位
    本篇内容主要讲解“CSS3中怎么确定背景的定位”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS3中怎么确定背景的定位”吧!本文向大家描述一下CSS3中新增加...
    99+
    2024-04-02
  • 如何在 Oracle 数据库中确定表的表空间
    在Oracle数据库中确定表的表空间是数据库管理中的一个重要操作,通过这个操作可以更好地管理数据库空间并优化数据库性能。在Oracle数据库中,每个表都会被分配到一个表空间中,表空间是...
    99+
    2024-03-03
    oracle 表空间 表名 sql语句
  • Oracle 调优确定存在问题的SQL
    SQL 语句处理阶段 透彻理解 SQL 处理有助于理解 SQL 统计信息。在 SQL 语句处理过程中,有四个重要阶段:分析、绑定、执行和提取。 反向箭头表示处理方案(例如,提取-(再)绑定-执行-提取...
    99+
    2024-04-02
  • 如何在PHP中定义常量
    在PHP中,常量是一种不可改变的值,一旦定义就不能被重新赋值或删除。定义常量可以确保代码的可重用性和可读性,同时也可以提高代码的性能。本文将介绍如何在PHP中定义常量。常量的定义在PHP中定义常量的语法如下:define(name, val...
    99+
    2023-05-21
    PHP 常量 定义
  • 如何在PHP中定义函数
    在PHP中定义函数,可以让我们更好地组织代码,重复利用代码,以及提高代码的可读性和可维护性。以下是一些操作步骤和注意事项,帮助你在PHP中定义函数。函数名称:函数名称是定义函数的关键,通常应该简明扼要,清晰易懂,能够体现函数的功能和作用。在...
    99+
    2023-05-21
    函数参数 PHP函数定义 函数返回值
  • PHP在文件指针中定位
    ...
    99+
    2024-04-02
  • PHP 函数单元测试:确保代码正确性和稳定性
    php 单元测试通过 phpunit 验证代码单元的正确性。步骤如下:使用 phpunit\framework\testcase 创建测试用例。定义以 test 开头的测试方法,并使用断...
    99+
    2024-04-11
    php 单元测试
  • php空间租用怎么确保稳定性
    以下是确保 PHP 空间租用稳定性的几种方法:1.选择可靠的主机提供商:选择有良好声誉和经验的主机提供商可以确保您的网站始终保持稳定...
    99+
    2023-06-08
    php空间租用 空间
  • 如何确定 PHP 函数参数的类型
    php 语言中可通过下列方法确定函数参数类型:is_ 函数:使用 is_ 函数检查变量类型,如 is_int() 和 is_array()。类型提示:在函数参数中指定期望类型,使用 : ...
    99+
    2024-04-19
    php 函数参数类型
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作