为什么在 PHP 中通过 header('Location..') 重定向后必须调用“退出”?

2023-12-25

您知道,如果您想在 PHP 中重定向用户,可以使用 header 函数:

header('Location: http://smowhere.com');

众所周知,将一个exit;之后header调用,以阻止执行其他 php 代码。所以我的问题是: header-location 调用之后的代码能否有效执行?在哪些情况下?恶意用户是否能够完全忽略header('Location..')称呼?如何?


header-location 调用之后的代码可以有效执行吗?

是的,总是。这header只是一行数据asking浏览器进行重定向。页面的其余部分仍将提供服务由 PHP 编写,并且可以通过简单地阻止客户端来查看header命令从执行。

使用像这样的命令行客户端就可以很容易地做到这一点wget例如,只需告诉它不要遵循重定向。

底线:如果你不阻止它,PHP 即使在经过一段时间后也会发送整个正文header称呼。该机构完全可供接收者使用,无需任何特殊的黑客技能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么在 PHP 中通过 header('Location..') 重定向后必须调用“退出”? 的相关文章

随机推荐

  • Spyder - UMD 已删除:模块

    我已经用 python 闲逛了大约一个月了 有些事情困扰着我 我使用 python x y 工具包 它附带了简洁的 Spyder IDE 我的问题涉及 Spyder 的 UMD 用户模块删除器 I found this http mcsp
  • ZonedDateTime.parse 不适用于解析 am 或 pm 时间

    我正在学习java 试图构建一个工具 根据用户输入 时间 时区A和时区B的输入 将特定时间从时区A转换为时区B 这是关于该工具以特定格式收集时间并将其转换为 ZonedDateTime 对象的部分 import java time Zone
  • 仅当总计数小于阈值时才将行插入 SQL Server 表中

    我正在使用 SQL Server 2012 我有一个存储用户的表 允许的最大用户数为 100 万 我有一个正在注册用户的存储过程 当我插入时 我想确保 users 表中的总行数不会超过 100 万 我更愿意使用允许最大并发性的方法 我相信我
  • 创建适用于 Windows 的用户和访问规则 Github

    我刚刚使用安装了 Githttp windows github com http windows github com 它似乎安装正确 但我无法创建新用户和访问控制设置来访问存储库 我试图查看文档 但不包含类似的内容 我不确定 Window
  • 在 EJS 中循环 JSON

    我在下面的 EJS 中有代码 tr td td tr 行的输出是正确的 是一个由 3 个对象组成的数组 每个对象都有属性 id 名称等 我可以操作该行来填充 JS 中的表 但是 我想知道是否有办法可以按照上述方式完成它 当我运行上面的代码时
  • 以编程方式停止并重新启动 Express 服务器(以更改端口)

    我希望能够基本上更改我的 Express 应用程序正在运行的端口 我试过了 server on close function server listen 3000 server listen 8080 server close 这会返回一个
  • 当推送到github时,为什么git不要求我输入用户名和密码?

    这可能是个愚蠢的问题 但我通过搜索找不到任何关于此的信息 也许 这是一个愚蠢的问题 我已将我的代码存储在 github 中 2小时前 我想更新存储库中的代码 但我的本地没有该代码 所以我克隆了它 修改了代码 然后推送了它 这时候git提示我
  • 如何以编程方式设置 ASP.NET ReportViewer 控件的数据源?

    如何以编程方式设置 ASP NET ReportViewer 控件的数据源 我有一个 VS 2008 ReportViewer 控件 想要在几个不同的报告之间切换 我可以通过设置报表源和刷新控件来切换报表 但我看不到在哪里设置数据源 每个报
  • 如何在 Android 布局中创建覆盖按钮

    我想创建一个将在两个布局之间叠加的按钮 我正在使用线性布局并为其添加适当的权重 附上屏幕截图以供参考 这是我的 XML 标签 xml
  • ZeroMQ 中的 N 到 N 异步模式?

    尽管我阅读了该指南 但我找不到执行以下操作的方法 我们有n个出版商 我们有 m 个订户 每个订阅者订阅某种类型的消息 一个发布者可以发送多种消息 多个发布者可以发出相同类型的消息 如何在 0MQ 中创建 N 到 N 或 N 到 1 到 N
  • GOF 和 GRASP 设计模式有什么区别

    我真的很困惑 GOF 和 GRASP 模式之间的区别 甚至两者都有助于改进面向对象的实践 简答 GoF被提到设计模式 And GRASP are 设计原则 设计原则比设计模式更抽象 长答案 软件工程的主要目的是开发合适的软件 SDLC ht
  • 如何将每个方面的总样本量添加到geom_histogram?

    I want to add total sample size of each facet to geom histogram Expect output as below After read this post https stacko
  • `mut a: &T` 和 `a: &mut T` 有什么区别? [复制]

    这个问题在这里已经有答案了 有人可以解释一下这两者之间有什么区别以及什么时候mut a T最常用 Rust 中的函数参数和 let 绑定是正确的模式 就像左边的那些 gt 匹配 除了 let 和参数模式必须是无可辩驳的 即它们必须始终匹配
  • 如何在不仅使用标准 Rust 库同时运行相同函数的情况下定期运行一组函数?

    我想使用 Rust 创建一个简单的调度程序 以便在定义的时间运行多个并发函数 但如果它们尚未完成 则不要启动更多函数 例如 如果定义的间隔为一秒 则调度程序应运行这些函数 并且如果先前的函数尚未返回 则不再启动更多函数 目标是防止多次运行相
  • ArrayList:查找第 n 次出现的整数

    查找 ArrayList 中第 n 次出现的数字的最佳方法是什么 我已经知道什么了 To find 最后一个索引 https docs oracle com javase 8 docs api java util ArrayList htm
  • 检查位于页面底部附近/底部

    我需要检查某个元素距离页面底部是否为 x 像素 以动态加载新内容 目前 即使栏位于底部 scrollTop 和高度也不匹配 允许使用 jquery 尽管基本的 javascript 会更有帮助 您可能想尝试以下操作 仅在 Firefox 3
  • 如何修改networkx中节点的轮廓颜色?

    我对 networkx 和使用 matplotlib pyplot 绘图相对较新 并且想知道如何修改节点轮廓的颜色 或其他属性 例如权重 我所说的 轮廓 并不是指两个节点之间的弧线或边缘 而是指两个节点之间的弧线或边缘 我的意思是圆圈周围的
  • QDateTimeEdit:以小时/分钟/秒为单位从 59 回滚到 00 或反之亦然

    我怎样才能回滚小时 分钟 秒59 to 00或相反亦然 实际上QDateTimeEdit默认情况下不允许 并且在达到最大值后会卡住59如果尝试按向上箭头 最小值相同00 你必须知道QDateTimeEdit是继承QAbstractSpinB
  • 如何使用 Github v3 API 查找存储库的默认分支

    我的目标是在默认分支中获取最新 SHA 的树 GET repos owner repo git trees sha 如何从默认分支中找到最新的 SHA 我知道我可以打电话 GET repos owner repo branches bran
  • 为什么在 PHP 中通过 header('Location..') 重定向后必须调用“退出”?

    您知道 如果您想在 PHP 中重定向用户 可以使用 header 函数 header Location http smowhere com 众所周知 将一个exit 之后header调用 以阻止执行其他 php 代码 所以我的问题是 hea