本文目錄一覽:
- 1、編寫php代碼時需要注意些什麼
- 2、各位用php做開發時,真正常用到的設計模式有哪些?
- 3、我在做PHP時也遇到問題了,求助啊 $name = $_POST[“name”]; $password = $_POST[“password”]; 這裡錯了
- 4、做php開發時,若開發環境與購買伺服器空間的運行環境不同(如apache,php版本不同)會影響網站的運行嗎?
編寫php代碼時需要注意些什麼
作為PHP程序員,特別是新手,對於互聯網的險惡總是知道的太少,對於外部的入侵有很多時候是素手無策的,他們根本不知道黑客是如何入侵的、提交入侵、上傳漏洞、sql 注入、跨腳本攻擊等等。作為最基本的防範你需要注意你的外部提交,做好第一面安全機制處理防火牆。
規則 1:絕不要信任外部數據或輸入
關於Web應用程序安全性,必須認識到的第一件事是不應該信任外部數據。外部數據(outside data) 包括不是由程序員在PHP代碼中直接輸入的任何數據。在採取措施確保安全之前,來自任何其他來源(比如 GET 變數、表單 POST、資料庫、配置文件、會話變數或Cookie)的任何數據都是不可信任的。
規則 2:禁用那些使安全性難以實施的PHP設置
已經知道了不能信任用戶輸入,還應該知道不應該信任機器上配置 PHP 的方式。例如,要確保禁用 register_globals。如果啟用了 register_globals,就可能做一些粗心的事情,比如使用 $variable 替換同名的 GET 或 POST 字元串。通過禁用這個設置,PHP 強迫您在正確的名稱空間中引用正確的變數。要使用來自表單 POST 的變數,應該引用 $_POST[‘variable’]。這樣就不會將這個特定變數誤會成 cookie、會話或 GET 變數。
規則 3:如果不能理解它,就不能保護它
一些開發人員使用奇怪的語法,或者將語句組織得很緊湊,形成簡短但是含義模糊的代碼。這種方式可能效率高,但是如果您不理解代碼正在做什麼,那麼就無法決定如何保護它。例如,您喜歡下面兩段代碼中的哪一段?
規則 4:「縱深防禦」 是新的法寶
本教程將用示例來說明如何保護在線表單,同時在處理表單的 PHP 代碼中採用必要的措施。同樣,即使使用 PHP regex 來確保 GET 變數完全是數字的,仍然可以採取措施確保 SQL 查詢使用轉義的用戶輸入。縱深防禦不只是一種好思想,它可以確保您不會陷入嚴重的麻煩。既然已經討論了基本規則,現在就來研究第一種威脅:SQL 注入攻擊。
防止SQL注入攻擊
在SQL注入攻擊中,用戶通過操縱表單或 GET 查詢字元串,將信息添加到資料庫查詢中。例如,假設有一個簡單的登錄資料庫。這個資料庫中的每個記錄都有一個用戶名欄位和一個密碼欄位。構建一個登錄表單,讓用戶能夠登錄。
各位用php做開發時,真正常用到的設計模式有哪些?
個人感覺,,,,工廠模式和單利模式比較多,這兩相比較的話單利模式使用的還是比較多的,當然這是個人觀點。
我在做PHP時也遇到問題了,求助啊 $name = $_POST[“name”]; $password = $_POST[“password”]; 這裡錯了
解決方法:
1)在變數前面 加上一個 @ ,如 $name = @$_POST[“name”]; $password = @$_POST[“password”];
2) 修改 php.ini 中的 error配置下錯誤顯示方式:將error_reporting = E_ALL 修改為
error_reporting = E_ALL ~E_NOTICE //註:配置文件里一般都有注釋的。
修改後重啟下APCHE伺服器,方可生效。
——–出現的原因——-
我們經常接收表單POST過來的數據時報Undefined index錯誤,如下: $act=$_POST[‘action’];
用以上代碼總是提示
Notice: Undefined index: act in D:\test\post.php on line 20
另外,有時還會出現
Notice: Undefined variable: Submit …… 等一些這樣的提示
出現上面這些是 PHP 的提示而非報錯,PHP 本身不需要事先聲明變數即可直接使用,但是對未聲明變數會有提示。一般作為正式的網站會把提示關掉的,甚至連錯誤信息也被關掉。
做php開發時,若開發環境與購買伺服器空間的運行環境不同(如apache,php版本不同)會影響網站的運行嗎?
基本不會
你要注意幾點
1 你開發使用的php版本是否不同 現在新的 php版本對原來版本的個別函數會報錯 如果有用 需要做錯誤處理
2 windows 和 linux 系統下 對文件的路徑會有些區別 需要注意一下路徑轉換 尤其是調用文件的時候
3 關於使用 fopen 類似函數寫入寫的文件的時候 linux系統 可能需要文件夾用戶許可權
其他的沒有什麼了
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/293619.html