這篇文章介紹的是常見的php攻擊(6種攻擊詳解),在這裡分享給大家,也可以給有需要幫助的人一個參考,大家一起來看一看吧
#1、SQL注入
SQL注入是一種惡意攻擊,使用者利用在表單欄位輸入SQL語句的方式來影響正常的SQL執行。還有一種是透過system()或exec()指令注入的,它有相同的SQL注入機制,但只針對shell指令。
[python] view plain copy
#$username = $_POST['username'#] ;
$query = "select * from auth where username = '".$username..$ #"'";
#echo $query;
$db = new mysqli('localhost', 'demo'##, 'demo
);
$result = $db->query($query); ## ###################if###### ($result && $result->num_rows) { ##################### ######### echo ###"} else {
## echo "
Login failed";
}
#防止SQL注入選項:
*使用mysql_real_escape_string()過濾資料*手動檢查每一資料是否為正確的資料類型
*使用預處理語句並綁定變數*使用準備好的預處理語句*分離資料和SQL邏輯*預處理語句將自動過濾(如:轉義)
*把它當作一個編碼規範,可以幫助團隊裡的新人避免遇到以上問題[python] view plain copy
$query =
'select name, district from city where countrycode=?'#############if###### ($stmt = $db->prepare($ query) ){ ###################### $countrycode = ###'hk'########### $countrycode = ###'hk'########### ###########################################1 ############ $stmt->bind_param(###"s"######, $countrycode); ##################」 ####### $stmt->execute(); #######
$stmt->bind_result($name, $district);
## while while
# while# # ( $stmt ($stmt->fetch() ){
echo $name.', echo $name.', echo $name.', echo $name.
', echo $name.##.$district;
echo '
'#
## }
#}
#2、XSS攻擊
XSS(跨站點腳本攻擊)是一種攻擊,由使用者輸入一些資料到你的網站,其中包含客戶端腳本(通常JavaScript)。另一個web頁面,這個腳本將被執行。 #*損壞網頁或表單*竊取cookie
*AJAX(XMLHttpRequest)防止XSS攻擊
#4、會議捕獲和劫持
這是與會話固定有著相同的想法,然而,它涉及竊取會話ID。可以透過XSS和JavaScript竊取。請確保使用者使用SSL
5、跨站點請求偽造(CSRF)
[python]
view plain copy#
'http://example.com/single_click_to_buy.php?user_id=123&item=12345' #> 6、程式碼注入 #程式碼注入是利用電腦漏洞透過處理無效資料所造成的。問題出在,當你不小心執行任意程式碼,通常透過檔案包含。寫得很糟糕的程式碼可以允許一個遠端檔案包含並執行。如同許多PHP函數,如require可以包含URL或檔名,例如: #[python] view plain copy #
#防止跨網站請求偽造
一般來說,確保使用者來自你的表單,並且匹配每一個你發送出去的表單。有兩點一定要記住:
對使用者會話採用適當的安全措施,例如:給每一個會話更新id和使用者使用SSL。
產生另一個一次性的令牌並將其嵌入表單,保存在會話中(一個會話變數),在提交時檢查它。
以上是常見的php攻擊(6種攻擊詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!