建立和處理表單是web開發人員的一個重要能力指標,本章梳理下重點。1、GET和POST的區別 GET方法不支援ASCII字元之外的任何字元,需要編碼操作(url_encode(),url_decode()),有的瀏覽器可自動完成。2、表單元素 常用的十幾個牢記即可,暫不表述。 3、檢查提交來源 來源: $ref = $_SERVER['HTTP_REFERER'] 伺服器位址: $srv = {$_SERVER['SERVER_NAME']} {$_SERVER['PHP_SELF']} if( strcmp($ref ,$srv) == 0 ) 安全 4、多頁面傳遞資料 三種方案: 表單隱含元素 資料儲存在session 資料儲存在資料庫 5、驗證表單資料 不要指望使用者按我們的意願輸入資料,需要我們在用戶端和伺服器端驗證。 避免表單重複提交幾個方案: (1) 用戶端js (2)cookie (3)session (4)header()函數轉向 表單到期的處理(避免錯誤提交後返回頁面資料丟失) 6、表單安全 預防XSS攻擊:www.2cto.com htmlspecialchars() 先對 ‘ “ < > & 做html編碼 htmlentitles() 轉換任意的html超文本實體,主要是過濾輸出(過濾js腳步標籤) strip_tags() 去除任何的html代碼 每當權限等級變化時,用 session_regenerate_id () 改變sessionid 。 預防sql 注入: mysql_escape_sstring() mysql_real_escape_sstring()7、開發安全的代碼 使用者輸入驗證 進階驗證 ctype 資料過濾 - pecl filter擴充 input_get() 檔案路徑檢測 魔法引用 magic_quote_gpc ,不提倡該法
http://www.bkjia.com/PHPjc/477698.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/477698.htmlTechArticle建立和處理表單是web開發人員的一個重要能力指標,本章梳理下重點。 1、GET和POST的區別 GET方法不支援ASCII字元之外的任何字元,需要編碼操...