一切輸入都是不可信的php
一切輸入都是不可信的html
一切輸入都是不可信的mysql
web 程序中全部 get
post
cookies
update_files
來的變量都是不可信的web
輸入的變量組成 mysql SQL 前都要用 mysql_real_escape_string()
處理sql
輸入的變量回顯在頁面或者存入數據庫錢都要用 htmlspecialchars()
函數處數據庫
對於傳入的整數或浮點數可使用 intval()
或 floatval()
處理安全
關閉 magic_quotes_runtime
安全掌握到本身的手裏 set_magic_quotes_runtime(false)
cookie
序列化 -> 加密 -> 解密 -> 反序列化函數
$userinfo = '信息'; //用戶信息 $secureKey = '密鑰'; //加密密鑰 $str = serialize($userinfo); //將用戶信息序列化 echo "用戶信息加密前:".$str; $str = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $secureKey, $str, MCRYPT_MODE_ECB)); echo "用戶信息加密後:".$str; //將加密後的用戶數據存儲到cookie中 setcookie('userinfo', $str); //當須要使用時進行解密 $str = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $secureKey, base64_decode($str), MCRYPT_MODE_ECB); $uinfo = unserialize($str); echo "解密後的用戶信息:\n"; var_dump($uinfo);
$password = '密碼'; $salt = substr(uniqid(rand()), -6); echo $salt . "\n"; $password = md5(md5($password).$salt); echo $password;