Nic*_*ini 54 php redirect location header
您知道如果要在PHP中重定向用户,可以使用标头功能:
header('Location: http://smowhere.com');
Run Code Online (Sandbox Code Playgroud)
众所周知,exit;在header调用之后也放置一个很好的做法,以防止执行其他php代码.所以我的问题是:标头位置调用后的代码能否有效执行?在哪些情况下?恶意用户能否完全忽略该header('Location..')呼叫?怎么样?
Pek*_*ica 58
可以有效执行header-location调用后的代码吗?
是的,总是.这header只是一行要求浏览器重定向的数据.页面的其余部分仍然由PHP提供,客户端可以通过简单地阻止header命令执行来查看.
这很容易与命令行客户端一样wget,例如,只是告诉它不要遵循重定向.
一句话:如果你不阻止它,PHP即使在header通话后也会发出全身.没有任何特殊的黑客技能,该机构完全可供收件人使用.
Ali*_*xel 25
如果您重定向但是没有die()/ exit() 代码总是被执行并显示.
请看以下示例:
admin.php的:
if (authenticationFails)
{
// redirect and don't die
}
// show admin stuff
Run Code Online (Sandbox Code Playgroud)
如果您不确定在位置标题之后结束执行,则每个用户都将获得访问权限.
header() 指示PHP应该发送HTTP标头...当发送HTTP标头时.
当你编写对header()的调用时,这些并不是立即发送的,而是在发送它们的时候(通常,当PHP需要开始发送响应的主体时 - 这可能比你想象的要晚,什么时候output_buffering被启用).
所以,如果你只是打电话header(),绝对保证不会执行在此声明之后写的代码 - 除非你通过使用exit/ 表示它不能表示die.
如果用户可以忽略Location标题; 但它不会改变调用header()可能或可能不执行后代码的事实:那个问题是服务器端.
| 归档时间: |
|
| 查看次数: |
23477 次 |
| 最近记录: |