本文目錄一覽:
thinkphp 3.1.3 怎麼更新漏洞補丁
[ ThinkPHP SQL注入安全漏洞補丁 ]
該補丁修正框架中一處可能導致SQL注入的地方,在開發者沒有合理使用I函數進行過濾的情況下可能導致SQL注入,請及時更新。
20141219更新:改進數據庫過濾機制
20141213更新:添加全局安全過濾機制
推薦使用I函數進行請求變量獲取,如果沒有使用I函數的話,需要在項目或者模塊中配置開啟REQUEST_VARS_FILTER參數,如下所示:
‘REQUEST_VARS_FILTER’=true
複製代碼
影響到的版本涵蓋TP2.1以上版本,請對應相關版本及時更新核心框架。
更新方法:
根據你的版本下載帶安全補丁的版本(更新functions.php、Db.class.php和App.class.php三個文件即可),如果你修改了核心框架,或者使用了更舊的版本,可以參考Github相應版本(對應Github不同的分支)的更新記錄進行手動更新。
如果你使用的是最新的3.2.3版本,無需單獨更新漏洞補丁。
php如何打漏洞補丁?
首先那些檢測漏洞的網站也別太當真,很多都是胡扯,我還遇到過開放80端口也算是高危漏洞的檢測咧,按他們說的只有拔掉服務器電源才是最安全的。
另外如果真的有漏洞,那也是程序代碼上的漏洞,一般不可能是php版本的漏洞,從來沒聽過有什麼漏洞通過升級php版本就能解決的。
你是不是那這個漏洞當成了windows漏洞一樣,打個補丁升個級就修復了,就算是打補丁升級,也是升級你的代碼。
怎麼給php打補丁
通常我們開發出一個系統,是肯定要經常升級的。升級就意味着對代碼或者數據結構的修改,當然一般情況下一個系統開發出來應該盡量少的修改數據結構的。
那麼,當別人當前使用的不是最新的版本,我們應該如何提供更新補丁供用戶升級呢?
第一,毫無疑問,每次放出一個版本的下載,都應該有一個對應的版本號以供區分。這樣如果當前用戶的版本和最新發佈的版本不一致,就說明他應該更新了。
第二,如何提供更新補丁。第一種方法:只提供修改了的文件,並且修改的文件應該根據系統的目錄進行打包。比如我修改了系統目錄中admin文件夾中的index.php文件,那麼補丁里不能直接存放indxe.php,而是要新建一個admin文件夾,把修改完的index.php文件存進後再將admin目錄打包。第二種方法:不管修改了多少文件都將系統整體打包。補丁包裏面應該附帶有詳細的更新說明以及更新方法。
第三,如何讓用戶更新。對於這兩種方法都是讓用戶下載補丁後覆蓋原文件,當然基於保險考慮應該提示用戶備份原文件。可以單獨讓用戶下載更新包或者提供在線更新。
第四,數據結構的更新。這個與更新代碼不一樣,稍微特別了點。因為數據庫裏面可能已經有數據了,所以肯定不能刪除原數據庫,再生成新的數據庫。那麼怎麼辦呢?只能通過修改語句對特定的表進行操作,比如添加或者刪除字段,新增一個表或者刪除一個表等。
第五,版本跨度大如何升級。有的用戶可能使用的版本非常舊,與最新版之間間隔了多個版本,怎麼升級?最保險的就是一個補丁一個補丁的進行安裝;如果要一次性安裝怎麼辦,那就必須要根據不同的版本製作不同的安裝包,因為從版本1到版本2可能只改動了1個文件,從版本2到版本3可能也只改動了1個文件,但是從版本1到版本3就改動了2個文件了,所以根據不同的版本製作不同的安裝包是必要的也是必須的。
總之,提供更新補丁最重要的一點就是要能夠準確判斷當前版本與最新版本的區別,然後下載對應的補丁。對數據結構的改動應該謹慎,一般情況下可以有新增(表或字段),但要盡量避免刪除。
php漏洞修復
打開php配置文件,php.ini,然後在裏面搜索dll,把你下載的布丁照着格式複製一行就行了。比如你下載的補丁為abc.dll;就加一行extension=abc.dll
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/189305.html