我合作的一個項目,其中REST API的基本發展模式打破,因爲它有一個更包含錯誤報告的政策。下面是該項目中的典型行:注意:未定義指數警告,這將打破JSON輸出字符串未定義指數 - 安全風險VS業績VS代碼膨脹
public function someAction() {
// Returns a map of params => values sent with HTTP req
$params = $this->getParams();
// This key may not exist --+
// |
// v
$someField = $params['someField'] ?: 'default value';
$someField = $this->sanitizeInput($someField);
// ...
}
其結果是,在開發模式JSON響應會經常與PHP散落。
我的問題
- 究竟什麼是安全風險(如果有的話)假設一個變量已經被初始化,尤其是從$ _GET或$ _POST拉的時候嗎?
- 難道是值得的麻煩要經過包裝和每次訪問與
isset()
或array_key_exists()
一些假設數組的鍵? - 我添加了周圍的整個應用程序提高在一定的動作民主基金指數警告個別鍵
isset()
,但代碼現在看起來超級臃腫...
的代碼看起來並不臃腫* *( )'。它看起來*正確*。恕我直言。 –
只是出於好奇,爲什麼不能在關鍵的出口?你把它當作人質嗎? – Dale
我把它當作人質。贖金已經支付,鑰匙現在可以走... –