亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么在通過標頭重定向(‘Location.’)后,我必須調用‘Exit’用PHP?

為什么在通過標頭重定向(‘Location.’)后,我必須調用‘Exit’用PHP?

PHP
白衣非少年 2019-07-03 17:24:39
為什么在通過標頭重定向(‘Location.’)后,我必須調用‘Exit’用PHP?您知道,如果要在PHP中重定向用戶,可以使用Header函數:header('Location: http://smowhere.com');這也是眾所周知的,這是一個很好的做法,也是一個exit;在.之后header調用,以防止執行其他php代碼。所以我的問題是:頭位置調用后的代碼能有效執行嗎?在哪種情況下?惡意用戶能否完全忽略header('Location..')打電話?多么,怎樣?
查看完整描述

3 回答

?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

標頭位置調用后的代碼能有效執行嗎?

是的,一直都是。這個header只是一行數據要重定向的瀏覽器。頁的其余部分仍將被送達通過PHP,客戶端可以通過簡單地防止header命令執行。

這對于命令行客戶機來說非常容易,比如wget例如,簡單地告訴它不要跟隨重定向。

底線:如果你不阻止它,PHP會發出整個身體,即使在header打電話。該機構是完全可用的收件人,沒有任何特殊的黑客技能。


查看完整回答
反對 回復 2019-07-03
?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

如果你重定向但你沒有die() / exit() 代碼總是被執行和顯示。.

以下列例子為例:

php:

if (authenticationFails){
    // redirect and don't die}// show admin stuff

如果不確保在位置標頭之后結束執行每一,每個用戶將獲得訪問權限。


查看完整回答
反對 回復 2019-07-03
?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

header()指示PHP發送HTTP報頭.當HTTP頭被發送時。

當您將調用寫到Header()時,這些不是立即發送的,而是在發送它們的時候立即發送的。(通常,當PHP需要開始發送響應體時-這可能比您想象的要晚。output_buffering使能).

所以,如果你打電話header(),可以絕對保證在此語句之后編寫的代碼不被執行-除非您指示它不能執行,方法是使用exit/die.

用戶可以忽略Location如果他想要的話,它不會更改任何內容,因為在調用header()可能執行也可能不執行:這件事是服務器端的。


查看完整回答
反對 回復 2019-07-03
  • 3 回答
  • 0 關注
  • 483 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號