web安全 sql注入

2021-09-01 02:59:07 字數 1596 閱讀 3595

所謂sql注入,就是通過把sql命令插入到web表單提交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。具體來說,它是利用現有應用程式,將(惡意的)sql命令注入到後台資料庫引擎執行的能力,它可以通過在web表單中輸入(惡意)sql語句得到乙個存在安全漏洞的**上的資料庫,而不是按照設計者意圖去執行sql語句。

為什麼會產生sql注入?

沒有對使用者的輸入字元進行過濾

伺服器或資料庫沒有做相應的安全配置

攻擊者可以偽造資料結構

sql注入的方式 : post get cookie

get注入:

返回錯誤

and 1=1 返回正常

and 1=2 返回錯誤

post注入:

1.利用mysql命令中的關鍵字

admin』#

admin』–

『or 1=1 #

2.post資料報

sql注入防禦:

一、過濾

1、trim():函式過濾掉頭和尾的空格

2、htmlspecialchars():函式把預定義字串轉化為實體,可以防止因為php_self帶來的xss攻擊

3、stripslashes():去掉反斜槓

4、addslashes():新增反斜槓

5、數字型別判斷型別:is_numeric()

二、使用pdo預定義處理

提供給預處理語句的引數不需要用引號括起來,驅動程式會自動處理。如果應用程式只使用預處理語句,可以確保不會發生sql 注入。(然而,如果查詢的其他部分是由未轉義的輸入來構建的,則仍存在 sql 注入的風險)。

p do

−>pr

epar

e(

pdo->prepare(

pdo−

>pr

epar

e(sql);

p do

−>ex

ecut

e(ar

ray(

「id」

=>

pdo->execute(array(「id」=>

pdo−

>ex

ecut

e(ar

ray(

「id」

=>

id));

web安全-xss跨站指令碼攻擊

magic_quotes_gpc 函式判斷

跨站指令碼攻擊(cross site scripting),為了不和層疊樣式表(cascading style sheets, css)的縮寫混淆,故將跨站指令碼攻擊縮寫為xss。惡意攻擊者往web頁面裡插入惡意script**,當使用者瀏覽該頁之時,嵌入其中web裡面的script**會被執行,從而達到惡意攻擊使用者的目的。

xss的攻擊方式

(1)反射型: 發出請求時,xss**出現在url中,作為輸入提交到伺服器端,伺服器端解析後響應,xss隨響應內容一起返回給瀏覽器,最後瀏覽器解析執行xss**,這個過程就像一次發射,所以叫反射型xss。

(2)儲存型: 儲存型xss和反射型的xss差別就在於,儲存型的xss提交的**會儲存在伺服器端(資料庫,記憶體,檔案系統等),下次請求目標頁面時不用再提交xss**。

示例:防禦:

WEB安全 SQL注入

sql注入 or 1 例如 select form table1 where name param 一般param是從頁面輸入控制項傳遞來的資料 如果你在控制項中輸入 or 1 1 那麼他將查詢所有的資料出來 表示後面的都被注釋掉了 你還可以 drop table table1 那麼他將刪除該錶,其...

web安全 sql注入(一)

基於從伺服器接收到的響應 1.基於錯誤的sql注入 2.聯合查詢的型別,基於union 3.堆查詢注射,用分號連線兩個sql語句 4.sql 盲注,就是當網頁並不將執行sql語句的結果輸出,但是將sql語句執行了,這種sql注入稱為盲注,盲注分為 基於布林 sql 盲注,基於時間的 sql 盲注,基...

web安全SQL注入原理

sql注入即isql injection,是指攻擊者通過注入惡意的sql命令,破壞sql查詢語句的結構,從而達到執行惡意sql語句的目的。sql注入漏洞的危害是巨大的,常常會導致整個資料庫被 脫褲 儘管如此,sql注入仍是現在最常見的web漏洞之一。sql注入攻擊可以手工進行,也可以通過sql注入攻...