php - 为什么我必须在 PHP 中通过 header 'exit' 重定向后调用 ('Location..' )?

标签 php redirect header location

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

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

众所周知,在 header 调用之后也放置一个 exit; 是一种很好的做法,以防止执行其他 php 代码。所以我的问题是:header-location 调用之后的代码能否有效执行?在哪些情况下?恶意用户能否完全忽略 header('Location..') 调用?怎么样?

最佳答案

could the code after the header-location call be effectively executed?

是的,总是。 header 只是一行数据要求浏览器重定向。页面的其余部分仍将由 PHP 提供,客户​​端可以通过简单地阻止 header 命令执行来查看。

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

底线:如果你不阻止它,即使在 header 调用之后,PHP 也会发出整个正文。接收者完全可以使用该主体,无需任何特殊的黑客技能。

关于php - 为什么我必须在 PHP 中通过 header 'exit' 重定向后调用 ('Location..' )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2747791/

相关文章:

php - 获取 flickr 缩略图

php - FFMPEG 不是 "decoding"正确的 url 输入

.htaccess - Htaccess 将除主页以外的所有页面的 https 重定向到 http,将主页的 https 重定向到另一个 url

linux - 如何在awk中获取列名?

php - SELECT inside INSERT 来自多个表的多行

javascript - Mailchimp 未收到名字和姓氏

.htaccess - 将 htaccess 限制为 tld 或将位置附加到结尾

redirect - Netlify 重定向不起作用

c++ - 如何连接标题中的字符串?

php - 来自 PHP 的 mp4 - 不在 HTML5 视频标签中播放