版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1PHP安全及性能優(yōu)化2本周內(nèi)容vPHP安全vPHP性能優(yōu)化3PHP安全v輸入驗證v跨站點腳本阻止vSQL注入v代碼注入v命令注入vSession安全v文件訪問安全v沙盒4輸入驗證v輸入驗證v正則表達式vSanitizing 和 Logical過濾器v清理輸入字符串5跨站點腳本攻擊阻止v拒絕特殊字符v利用HTTP-only Cookie解決XSSv使用filter_xss()阻止跨站點腳本攻擊6SQL注入v引號使用v預編譯語句vLike使用vSQL錯誤處理v其它風險7代碼注入v路徑校驗v使用全路徑v避免動態(tài)路徑v驗證文件名v其它代碼注入風險8命令注入v通過命令注入使資源衰竭v路徑使用v隱含威脅
2、9Session安全v服務器端的弱點vURL SessionvSession鼓動v本地保護機制v服務器端過期機制v加密Session超出v基于IP的驗證10文件訪問安全v加密讀權(quán)限v加密寫權(quán)限v上載文件現(xiàn)值v文件前面v安全模式vPHP編碼v根目錄管理11沙盒v使用沙盒誤導攻擊v編譯沙盒vIP地址限制v路由信息12PHP性能優(yōu)化vPHP代碼人工優(yōu)化v使用優(yōu)化工具優(yōu)化代碼v頁面文件壓縮輸出vMysql緩存優(yōu)化配置v數(shù)據(jù)庫優(yōu)化13PHP代碼人工優(yōu)化(一)v方法可靜態(tài)化,速率可提升至 4 倍v使用echo而不是printv使用 echo 的多重參數(shù),而不是字符串連接。v便利數(shù)組時foreach比whi
3、le大約快20%-30%左右。v注銷那些不用的變量尤其是大數(shù)組,以便釋放內(nèi)存。v盡量避免使用 _get,_set,_autoload。v在包含文件時使用完整路徑,解析操作系統(tǒng)路徑所需的時間會更少。v函數(shù)代替正則表達式完成相同功能14PHP代碼人工優(yōu)化(二)v使用選擇分支語句(譯注:即 switch case)好于使用多個 if,else if 語句。v用 屏蔽錯誤消息的做法非常低效。 v打開 apache 的 mod_deflate 模塊。v數(shù)據(jù)庫連接當使用完畢時應關(guān)掉。v$rowid 的效率是 $rowid 的 7 倍。v錯誤消息代價昂貴。v盡量不要在 for 循環(huán)中使用函數(shù),比如 for(
4、$x=0; $x prop+)要比遞增一個局部變量慢 3 倍。v遞增一個未預定義的局部變量要比遞增一個預定義的局部變量慢 9 至 10 倍。v僅定義一個局部變量而沒在函數(shù)中調(diào)用它,同樣會減慢速度(其程度相當于遞增一個局部變量)。PHP 大概會檢查看是否存在全局變量。16PHP代碼人工優(yōu)化(四)v 方法調(diào)用看來與類中定義的方法的數(shù)量無關(guān),因為我(在測試方法之前和之后都)添加了 10 個方法,但性能上沒有變化。v 派生類中的方法運行起來要快于在基類中定義的同樣的方法。v 調(diào)用帶有一個參數(shù)的空函數(shù),其花費的時間相當于執(zhí)行 7 至 8 次的局部變量遞增操作。類似的方法調(diào)用所花費的時間接近于 15 次的
5、局部變量遞增操作。v 用單引號代替雙引號來包含字符串,這樣做會更快一些。因為 PHP 會在雙引號包圍的字符串中搜尋變量,單引號則不會。當然,只有當你不需要在字符串中包含變量時才可以這么做。v 輸出多個字符串時,用逗號代替句點來分隔字符串,速度更快。注意:只有 echo 能這么做,它是一種可以把多個字符串當作參數(shù)的“函數(shù)”(譯注:PHP 手冊中說 echo 是語言結(jié)構(gòu),不是真正的函數(shù),故把函數(shù)加上了雙引號)。17PHP代碼人工優(yōu)化(五)v Apache 解析一個 PHP 腳本的時間要比解析一個靜態(tài) HTML 頁面慢 2 至 10 倍。盡量多用靜態(tài) HTML 頁面,少用腳本。v 除非腳本可以緩存,
6、否則每次調(diào)用時都會重新編譯一次。引入一套PHP緩存機制通??梢蕴嵘?25% 至 100% 的性能,以免除編譯開銷。v 盡量做緩存,可使用 memcached。memcached 是一款高性能的內(nèi)存對象緩存系統(tǒng),可用來加速動態(tài) Web 應用程序,減輕數(shù)據(jù)庫負載。對運算碼 (OP code) 的緩存很有用,使得腳本不必為每個請求做重新編譯。v 并不是事必面向?qū)ο?(OOP),面向?qū)ο笸_銷很大,每個方法和對象調(diào)用都會消耗很多內(nèi)存。v 并非要用類實現(xiàn)所有的數(shù)據(jù)結(jié)構(gòu),數(shù)組也很有用。18PHP代碼人工優(yōu)化(六)v不要把方法細分得過多,仔細想想你真正打算重用的是哪些代碼?v盡量采用大量的 PHP 內(nèi)置函
7、數(shù)。v如果在代碼中存在大量耗時的函數(shù),你可以考慮用 C 擴展的方式實現(xiàn)它們。v評估檢驗 (profile) 你的代碼。檢驗器會告訴你,代碼的哪些部分消耗了多少時間。Xdebug 調(diào)試器包含了檢驗程序,評估檢驗總體上可以顯示出代碼的瓶頸。vmod_zip 可作為 Apache 模塊,用來即時壓縮你的數(shù)據(jù),并可讓數(shù)據(jù)傳輸量降低 80%。 v我想要完成的任何事情 19使用優(yōu)化工具優(yōu)化代碼vzend optimizer工具的使用20頁面文件壓縮輸出vHtml頁面、JavaScript、CSS文件壓縮輸出v使用Apache2的mod_deflate模塊21MySql緩存優(yōu)化配置v使用動態(tài)緩存v使用靜態(tài)緩存v使用緩存工具eAccelerator、APC、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子設(shè)備交易合同案例
- 悔過自責重建信任
- 珍愛和平和諧相處
- 香蕉采購合同示例
- 版企業(yè)借款合同模式
- 地毯招標廢標原因文件
- 建筑施工土方填筑招標
- 戶外垃圾桶設(shè)計招標
- 電子招投標操作技巧
- 大樓租賃合同書
- 舊廠房改造調(diào)研分析報告
- 職業(yè)規(guī)劃樣本
- 漢語拼音書寫紙(打印版).
- NJRD系列軟起動器出廠參數(shù)設(shè)置表
- 食堂食品定點采購詢價記錄表
- 黑龍江醫(yī)藥公司目錄
- 2021-2022無錫市六年級數(shù)學上冊期末試卷真題
- 銷售合同風險與防范培訓(共40頁).ppt
- 情景劇《皇帝選妃》
- 2020年領(lǐng)導干部個人有關(guān)事項報告表
- 一年級童謠誦讀計劃
評論
0/150
提交評論