php的四大安全性原則你知道嗎?

來源:互聯網
上載者:User
這篇文章主要介紹了PHP中的檔案系統安全、資料庫安全、使用者資料安全等安全相關的問題,需要的朋友可以參考下

一、檔案系統安全
php如果具有root許可權,且在指令碼中允許使用者刪除檔案,那麼使用者提交資料,不進行過濾,就非常有可能刪除系統檔案

<?php// 從使用者目錄中刪除指定的檔案$username = $_POST['user_submitted_name'];$userfile = $_POST['user_submitted_filename'];$homedir = "/home/$username";unlink ("$homedir/$userfile");echo "The file has been deleted!";?>

上面的代碼,假設使用者提交的$userfile值是 ../etc/,那麼/etc目錄就會被刪除
防範檔案系統攻擊,策略如下

只給php有限的許可權
使用者提交上來的變數要監測和過濾,不能包含檔案路徑等特殊字元
盡量避免使用PHP操作檔案(刪除),如果有這方面的需求,那使用者可刪除檔案也必須是系統產生的隨機名稱,不可被使用者控制
二、資料庫安全
資料庫安全主要防範的是sql injection,即sql注入攻擊,提升資料庫安全的策略如下:

不用使用root帳號或者資料庫擁有者帳號串連資料庫,串連資料庫限定串連使用者的ip
使用php的pdo擴充,有效防止sql注入,除了安全方面的優勢,php的pdo擴充在效能方面有有很大優勢
請參看 http://php.net/manual/en/pdo.prepared-statements.php
對一些敏感資訊進行加密,常見的比如對密碼進行加密
三、使用者資料過濾
對使用者資料過濾,可以防範XSS和CSRF攻擊

使用白名單(使用者輸入是固定模式)的方式
比如使用者名稱只能使用數字字母,那麼可以使用函數ctype_alnum判斷
對使用者輸入使用函數 htmlentities或者htmlspecialchars進行處理,輸入url不允許傳入非http協議
使用者身分識別驗證使用令牌 token(csrf)
http://htmlpurifier.org/ HTML Purifier 是開源的防範xss攻擊的有效解決方案,
四、其他安全性原則
線上環境關閉錯誤報表(error_reporting,dislay_erros,可在php.ini中配置error_log路徑,記錄錯誤資訊,這樣有助於發現可能的使用者攻擊)
Register Globals,棄用(移除)的特性,不要使用
魔術引號特性,不要開啟,在PHP-5.4中已經被移除
盡量使用PHP的最新版本,最新版本修複了已知的很多安全性漏洞和bug
代碼中嚴格遵守上述策略,基本能保證代碼不會有太多的安全性漏洞,能防範常見攻擊。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.