PHP學習筆記5 – 安全事務

來源:互聯網
上載者:User
屏蔽使用者輸入

建立一個安全應用網站的原則之一是 絕不可相信使用者的任何輸入,將使用者資料輸入到檔案或者資料庫之前,要一直屏蔽此資料或者通過系統執行的命令傳輸它。

 

1. 使用addslashes()在使用者資料進入資料庫之前過濾該資料。過濾掉可能引起資料庫問題的字元。可以使用stripslashes()將資料返回到它的原始形式。

 

2. 可以在php.ini設定檔中開啟magic_quote_gpc和magic_quotes_runtime的指令。功能同上,magin_quote_gpc格式化GET、POST和cookie變數;magic_quotes_runtime格式化進出資料庫的資料。

 

3. 當傳遞使用者資料system()或者exec()時,必須使用函數escapeshellcmd()。該函數可以避免任何懷有惡意的使用者輸入強迫系統運行某些特定命令的字元。

 

4. 可以使用strip_tags()從一個字串中去掉HTML和PHP標記。

 

5. 可以使用htmlspecialchars()將字元轉換成他們的HTML等價實體。如將“<”轉換成“&It;”。該函數可以將任何指令碼標記轉換成無害字元。

 

提供安全儲存

 

3種不同類型的儲存資料(HTML或PHP檔案,與指令碼相關的資料和MySQL資料)儲存在同一磁碟的不同地方。

 

不允許使用者在Web層次目錄中修改或建立新的檔案。

 

如果指令碼需要有寫入檔案的許可權,要在Web伺服器的分類樹結構以外建立一個目錄。所建立的指令碼和資料不要混在一起。

 

當寫入重要資料時需要對資料進行加密,並且解密資料的密鑰和軟體必須儲存在另一台機器上。MySQL中設定合適的使用者存取權限。

 

當指令碼程式使用其他副檔名時(如.inc),應該把這樣的檔案放到網路之外,設定伺服器不發送這種副檔名的檔案。

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.