保護代碼安全,PHP如何進行注入
我們主要是從兩點出發,因為我們的獲取的變量一般都是通過GET或者POST方式提交過來的,那么我們只要對GET和POST過來的變量進行過濾,那么就能夠達到防止注入的效果。而且我們的PHP真是非常好,已經內置了$_GET和$_POST兩個數組來存儲所有變量,我們要做的工作就是過濾每個變量就可以了。
下面看具體的代碼:
/*
PHP開發資源網 = 全球最大的PHP中文社群 = PHPer的網上家園
*/
/* Author: heiyeluren */
/* 過濾所有GET過來變量 */
foreach ($_GET as $get_key=%26gt;$get_var)
{
if (is_numeric($get_var))
if (is_numeric($get_var)) {
$get[strtolower($get_key)] = get_int($get_var);
} else {
$get[strtolower($get_key)] = get_str($get_var);
}
}
/* 過濾所有POST過來的變量 */
foreach ($_POST as $post_key=%26gt;$post_var)
{
if (is_numeric($post_var)) {
$post[strtolower($post_key)] = get_int($post_var);
} else {
$post[strtolower($post_key)] = get_str($post_var);
}
}
/* 過濾函數 */
//整型過濾函數
function get_int($number)
{
return intval($number);
}
//字符串型過濾函數
function get_str($string)
{
if (!get_magic_quotes_gpc()) {
return addslashes($string);
}
return $string;
}
那么我們把以上代碼放到一個公共的文件里,比如security.inc.php里面,每個文件里都include一下這個文件,那么就能夠給任何一個程序進行提交的所有變量進行過濾了,就達到了我們一勞永逸的效果。
方法是不同的,但是核心就是為了我們的代碼更加安全。
關健詞:PHP,注入
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解