第八周的學習心得 安全

2021-09-26 10:36:05 字數 1643 閱讀 5727

輸入安全

雖然5.0的底層安全防護比之前版本要強大不少,但永遠不要相信使用者提交的資料,建議務必遵守下面規則:

設定 public 目錄為唯一對外訪問目錄,不要把資源檔案放入應用目錄;

開啟表單令牌驗證避免資料的重複提交,能起到 csrf 防禦作用;

使用框架提供的請求變數獲取方法(request類 param 方法及 input 助手函式)而不

是原生系統變數獲取使用者輸入資料;

對不同的應用需求設定 default_filter 過濾規則(預設沒有任何過濾規則),常見

的安全過濾函式包括 stripslashes 、 htmlentities 、 htmlspecialchars 和strip_tags 等,請根據業務場景選擇最合適的過濾方法;

使用驗證類或者驗證方法對業務資料設定必要的驗證規則;

如果可能開啟強制路由或者設定miss路由規則,嚴格規範每個url請求;

資料庫安全

在確保使用者請求的資料安全之後,資料庫的安全隱患就已經很少了,因為 5.0 版本的資料操作使用了pdo預處理機制及自動引數繫結功能,請確保:

盡量少使用陣列查詢條件而應該使用查詢表示式替代;

盡量少使用字串查詢條件,如果不得已的情況下 使用手動引數繫結功能;

不要讓使用者輸入決定要查詢或者寫入的字段;

對於敏感資料在輸出的時候使用 hidden 方法進行隱藏;

對於資料的寫入操作應當做好許可權檢查工作;

寫入資料嚴格使用 field 方法限制寫入字段;

對於需要輸出到頁面的資料做好必要的 xss 過濾;

上傳安全

**的上傳功能也是乙個非常容易被攻擊的入口,所以對上傳功能的安全檢查是尤其必要的。

系統的 think\file 提供了檔案上傳的安全支援,包括對檔案字尾、檔案型別、檔案大小

以及上傳檔案的合法性檢查,確保你已經在上傳操作中啟用了這些合法性檢查。

為了方便版本公升級,並且保證public目錄為唯一的web可訪問目錄,資源檔案可以放到專案之外,例如專案目錄為

/home/www/thinkphp/

那麼資源目錄、上傳檔案儲存的目錄

/home/www/resource/

/home/www/resource/upload/

為了專案的可維護性,目錄操作最好不超出本專案的根目錄,所以需要把resource目錄對映到根目錄

ln -s /home/www/resource/ /home/www/thinkphp/resource/

如果上傳檔案也需要web訪問,可以生成乙個軟連線到public

ln -s /home/www/thinkphp/resource/upload/ /home/www/thinkphp/public/uplo

ad/其它安全建議

其它的一些安全建議:

對所有公共的操作方法做必要的安全檢查,防止使用者通過url直接呼叫;

不要快取需要使用者認證的頁面;

對使用者的上傳檔案,做必要的安全檢查,例如上傳路徑和非法格式;

對於專案進行充分的測試,不要生成業務邏輯的安全隱患(這可能是最大的安全問

題);最後一點,做好伺服器的安全防護,安全問題的關鍵其實是你的最薄弱的環節;

ROS學習心得 安裝篇 ROS安裝

ros學習心得 安裝篇 ros安裝 for the sigma for the gtinder for the robomaster ros robot operating system 是乙個機械人軟體平台,它能為異質計算機集群提供類似作業系統的功能。很多機械人開發都圍繞這這一平台。關於kinet...

轉 ROS學習心得 安裝篇 ROS安裝

ros學習心得 安裝篇 ros安裝 for the sigma for the gtinder for the robomaster ros robot operating system 是乙個機械人軟體平台,它能為異質計算機集群提供類似作業系統的功能。很多機械人開發都圍繞這這一平台。關於kinet...

第八周學習

第八周學習週報 2018.10.22 10.28 一 本週學習情況 本週主要學習了 開源硬體 arduino基礎教程 1 歐姆定律 2 光敏電阻與三極體的初步認識 3 多種方法控制並點亮led燈 按鈕開關,光敏開關,紅外開關 訪問了csdn社群的計算機基礎板塊,學習大神的帖子。利用開源硬體對網課裡的...