被 error log 的訊息會被記錄到指定的位置 (php error log, mail, file..等等),而不會直接在畫面上呈現出來,然後程式會繼續往下走。而 trigger_error 則是著重於 error 的觸發 + log 用途,會視 php.ini 中 log_errors 及 error_log 的設定,來將錯誤訊息記錄到指定的位置, 並視 php.ini 中 display_errors 的設定,決定是否直接呈現在畫面上
PHP 過於自由鬆散的語法及設定,雖然是有效降低了入門的學習曲線,卻無形中讓入門者在初學養成的關鍵階段,深深埋下隨時準備失控引爆的地雷種子而不自知。PHP 開發環境開啟 E_ALL 的重要性,換成另一面反向的說法,通常是在暗示隱藏 E_NOTICE 的隱憂。
PHP 裡有 htmlspecialchars() 及 strip_tags(),這兩個函式用途很像,都是在作 HTML 輸出消毒,但這兩者還是有一點點不同,可以這麼來理解它...
在 DBMS 為 MySQL 時,要留意 mysql_real_escape_string() 的使用時機,要先確保產生 DB 連線資源後,才能正確使用,不然可能會產生空值。
注意 PHP 5.3 之後的版本,是已經建議廢棄 =& new 但不是所有情況的 =& 都不建議了,若原來為 =& new 則改為 = new 就好,若原來為 =& xxx::aa() 則可以不用更動
PHP 的 urlencode() 是針對參數值 vs htmlspecialchars() or htmlentities() 是針對整個 ? 後的查詢字串
想要開發安全的 Web 應用程式,最重要的是正確掌握資料的「用途」狀態。最重要的是,這些「用途」的資料,應明確加以區別,不要混淆使用,一定要明確配合「用途」進行轉換。
AWStats是個記錄檔分析工具,可讀取Web或郵件伺服器的記錄檔作成易讀的圖表網頁,若您有在伺服器上安裝AWStats,別忘記修改logrotate設定檔去配合AWStats的運作,因為在預設的情況下,網站的記錄檔會自動定期改檔名,並將舊的記錄檔加以壓縮和刪除,這會導致AWStats讀取不到某些時間點的記錄資料,造成作出的統計圖表不完整。 您可以參考以下範例修改logrotate的設定檔,通常要去修改 /etc/logrotate.d/apache2 這個檔,注意prerotate至endscript的部份:
樂倍達數位科技 版權所有 Copyright © 2004-2011 DoubleService Digital Technology. All Rights Reserved.