複雜滋生錯誤,錯誤可能導致安全漏洞。這個簡單的事實說明了為什麼簡單對於一個安全的應用來說是多麼重要。沒有必要的複雜性與沒有必要的風險一樣糟糕。
例如,下面的程式碼摘自一個最近的安全漏洞通告:
CODE:
<?php $search = (isset($_GET['search']) ? $_GET['search'] : ''); ?>
這個流程會混淆$search變數受污染*的事實,特別是對於缺乏經驗的開發者而言。上面語句等價於下面的程式:
CODE:
<?php $search = ''; if (isset($_GET['search'])) { $search = $_GET['search']; } ?>
## 上面的兩個處理流程是完全相同的。現在請注意一下下面的語句:
$search = $_GET['search'];
使用這一語句,在不影響流程的情況下,保證了$search變數的狀態維持原樣,同時也可以看出它是否受污染。
* 譯註:受污染變量,即在程式執行過程中,該變數的值不是由賦值語句直接指定值,而是來自其它來源,如控制台輸入、資料庫等。
以上就是PHP安全-簡單就是美的內容,更多相關內容請關注PHP中文網(www.php.cn)!
#