我想爲「安全」php頁面創建一個函數,該頁面將檢查令牌(通過post和會話傳遞的令牌)。
但我不想寫兩個if語句是這樣的:在if語句中執行函數的命令php
function CheckToken(){
if(isset($_POST['token']) && isset($_SESSION['token']))
if($_POST['token']==$_SESSION['token']) return true;
return false;
}
我可以做這樣的事情(?):
function CheckToken(){
if(isset($_POST['token']) && isset($_SESSION['token']) && $_POST['token']==$_SESSION['token']) return true;
return false;
}
下面是關於這些函數執行的順序(當使用和運算符時)。所以如果你使用AND操作數,那麼如果第一個條件ns是錯誤的,不要評估第二個。我記得vb.net有解決這個問題的方法(只評估第一個函數 - 如果它是錯誤的,不要評估第二個函數)。
因此,把所有東西都放在一條線上是安全的嗎(就像我在第二個例子中那樣)?
我會一直堅持第一個選項,因爲我喜歡分開我的條件。這通常用於診斷問題並根據狀態返回單獨的錯誤消息。但是,如果你不擔心將錯誤返回給用戶等,那麼任何一個都沒問題。兩個人都在做同樣的事情。 – Juakali92