利用「引數賦值」防範SQL注入漏洞攻擊

2022-05-26 15:12:10 字數 2134 閱讀 7940

《年輕,無權享受》————送給每乙個看到此文的同僚們

在這無精打采的炎夏

我躺在陽台上房東的舊沙發

回想幾個月來遇到的問題

我不禁內心開始慌張喘著粗氣

還有大把時間去打拼 沒有到只能總結過去的年紀

我可不想現在是束縛的 我了解自己應該是自由的

美好都被我親手搞砸 我明白我沒有時間貪去揮霍了

我可不想老了以後 自己是孤獨的

年少的時候 沒理由去享受

等到你老了 頭髮掉落了

牽著老伴 坐在公園的長凳 靜看人閒花落;

冗言不再贅述了,直接開拔進入我們今天的主題

再點選 登陸按鈕 結果如圖所示:

我們會驚奇的發現註冊時不輸入字元,也能註冊成功;登入時我們沒有輸入資料庫裡儲存的賬戶和密碼,而是輸入hello' or 1=1 --  卻也能登陸成功。看到這,你們當中有人肯定會說。這有什麼好奇怪的,你給他們的屬性設定為null了嗎?但是我要跟你們說得是,其實不然,我們知道這樣的結果並不是我們想要的,那如何去解決呢?有人會說這容易,去判斷就行了呀?然而事實果如你說的容易嗎?資料庫是海量儲存的,裡面的資料報羅永珍,按照你的做法你要去乙個個判斷,那得判斷到何年馬月啊?這就是我們看到的sql注入的漏洞攻擊,所以在這裡就要引出我們今天的話題,如何來繞過sql注入的漏洞攻擊呢?

好了,接下來我們就要運用「引數賦值」的方法來防範sql注入漏洞攻擊:語法:運用@+引數 (@表示在sql語句中申明乙個變數來替代),sqlparameter

具體註冊**如下所示:

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.data.sqlclient;

using system.drawing;

using system.linq;

using system.text;

using system.threading.tasks;

using system.windows.forms;

namespace 登入註冊

private void btnreg_click(object sender, eventargs e)

;sqlcommand command = new sqlcommand(sql, conn);

command.parameters.addrange(ps);

int num = command.executenonquery();

messagebox.show(num == 1 ? "ok" : "no ok");}}

private void btnlog_click(object sender, eventargs e)}}

登陸事件**如圖:

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.threading.tasks;

using system.windows.forms;

using system.data.sqlclient;

namespace c01作業_登入註冊

private void btnlogin_click(object sender, eventargs e)

else}}

}}

使用引數賦值方法後就可以防範sql注入的漏洞攻擊了,當我們再次輸入空字元的時候就會報如下錯誤:

防範SQL注入漏洞

sql注入漏洞並不可怕,知道原理 耐心仔細,就可以徹底防範!下面給出4個函式,足夠你抵擋一切sql注入漏洞!讀懂 你就能融會貫通。注意要對所有的request物件進行過濾 包括 request.cookie,request.servervariables 等等容易 被忽視的物件 function k...

終極防範SQL注入漏洞

終極防範sql注入漏洞 其實sql注入漏洞並不可怕,知道原理 耐心仔細,就可以徹底防範!下面給出4個函式,足夠你抵擋一切sql注入漏洞!讀懂 你就能融會貫通。注意要對所有的request物件進行過濾 包括 request.cookie,request.servervariables 等等容易被忽視的...

終極防範SQL注入漏洞

終極防範sql注入漏洞 其實sql注入漏洞並不可怕,知道原理 耐心仔細,就可以徹底防範!下面給出4個函式,足夠你抵擋一切sql注入漏洞!讀懂 你就能融會貫通。注意要對所有的request物件進行過濾 包括 request.cookie,request.servervariables 等等容易被忽視的...