PHP SQL注入的安全規範

2021-06-20 04:25:19 字數 2060 閱讀 2698

php注入的安全防範通過上面的過程,我們可以了解到php注入的原理和手法,當然我們也同樣可以制定出相應該的防範方法:

首先是對伺服器的安全設定,前面的windows伺服器的安全設定我們已經講了,不再重複,這裡主要是php+mysql的安全設定和linux主機的安全設定。對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 SQL注入問題

這次解決sql注入問題,是查詢之前的controller檔案中的sql注入問題,修補漏洞很重要,預防漏洞的產生也同樣重要,在使用sql語句對資料庫進行增刪改查操作的時候,要考慮到sql注入問題的出現。首先了解一下sql注入的步驟 2 使用者自己構造sql語句 3 將sql語句傳送給資料庫管理系統 d...

PHP SQL注入與防禦

1.什麼是sql注入攻擊?2.php通用sql注入攻擊方式 登入介面如下 我們的測試使用者名稱及密碼 admin 123456 首先,我們使用正確的登入使用者名稱及密碼 我們通過sql注入方式跳過密碼驗證登入 通過兩次登入的sql語句,我們可以很清楚的看出差異 step 1 sql select f...

api安全規範

1.api簽名的目的 校驗api呼叫者的身份,是否有權訪問 校驗請求的資料完整性,防止被中間人篡改 防止重放攻擊 2.基本概念 3.基於簽名的認證過程 客戶端 構建http請求,填寫必要的date等http首部資訊 按簽名演算法計算出signature 將accesskey和signature置於 ...