所謂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注入攻...