防止PHP注入

2022-01-17 18:00:00 字數 1912 閱讀 6745

對php+mysql注射的防範,首先將magic_quotes_gpc設定為on,display_errors設定為off,如果id型,我們利用intval() 將其轉換成整數型別,如:

$id=intval($id);

mysql_query=」select *from example where articieid=』$id』」;或者這樣寫:mysql_query("select * from article where articleid=".intval($id)."")

如果是字元型就用addslashes()過濾一下,然後再過濾」%」和」_」如:

$search=addslashes($search);

$search=str_replace(「_」,」\_」,$search);

$search=str_replace(「%」,」\%」,$search);

當然也可以加php通用防注入**:

/*************************

php 通用防注入安全**

說明:判斷傳遞的變數中是否含有非法字元

如$_post、$_get

功能:防注入

**************************/

//要過濾的非法字元

$arrfiltrate=array("'",";","union");

//出錯後要跳轉的url,不填則預設前一頁

$strgourl="";

//是否存在陣列中的值

function funstringexist($strfiltrate,$arrfiltrate)

}return false;

}//合併$_post 和 $_get

}//驗證開始

foreach($arrpostandget as$key=>$value)else

exit;}}

>

/*************************

儲存為checkpostandget.php

然後在每個php檔案前加include(「checkpostandget.php「);即可

**************************/

另外將管理員使用者名稱和密碼都採取md5加密,這樣就能有效地防止了php的注入。

還有伺服器和mysql也要加強一些安全防範。

對於linux伺服器的安全設定:

加密口令,使用「/usr/sbin/authconfig」工具開啟密碼的shadow功能,對password進行加密。

禁止訪問重要檔案,進入linux命令介面,在提示符下輸入:

#chmod 600 /etc/inetd.conf    //改變檔案屬性為600

#chattr +i  /etc/inetd.conf     //保證檔案屬主為root

#chattr –i  /etc/inetd.conf     // 對該檔案的改變做限制

禁止任何使用者通過su命令改變為root使用者

在su配置檔案即/etc/pam.d/目錄下的開頭新增下面兩行:

auth  sufficient  /lib/security/pam_rootok.so debug

auth  required  /lib/security/pam_whell.so group=wheel

刪除所有的特殊帳戶

#userdel  lp等等    刪除使用者

#groupdel lp等等    刪除組

禁止不使用的suid/sgid程式

#find / -type f \(-perm -04000  - o –perm -02000 \) \-execls –lg {} \

php 防止mysql注入 php防止sql注入

三個函式 addslashes string 用反斜線引用字串中的特殊字元 username addslashes username mysql escape string string 用反斜槓轉義字串中的特殊字元,用於mysql query 查詢。username mysql escape st...

php 防止sql注入

標題起的名字很大其實這裡只說乙個簡單的方法 防止sql注入的方法有很多,這裡要說的其實就是漏洞演練平台dvwa裡的一種方式 直接看high級別的就可以了 id get id id stripslashes id id mysql real escape string id if is numeric...

php防止sql注入

所謂sql注入,是由表單提交時,後台拼接 sql語句造成的。如此,會給系統帶來很大的破壞,甚至導致整個資料庫被清掉,或刪除。因此必須做好防注入操作。關於這個問題,成熟的方案有很多,現在總結如下 一,從根源上解決問題,也就是在接受表單提交時,要特別注意sql拼接處理可能帶來的影響,避免給黑客留下突破口...