iT邦幫忙

1

疑似SQL注入攻擊的解決方法

最近做了一個有會員註冊和登入功能的網站,運行幾個月後發現資料庫中多了好幾筆新的會員,內容大概如圖片,看起來是SQL注入攻擊
https://ithelp.ithome.com.tw/upload/images/20201024/20109930zmRjr6AV5T.png

上網搜尋類似的語法有查到此網站,底下的那一堆留言就類似我資料庫內看到的,大概幾百筆,看不太懂他的語法在寫甚麼,請問這些語法會有影響和危險嗎?有甚麼方法可預防嗎?
https://211.21.107.116/news_detail.php?c_id=46827

謝謝大神們

是你的參數漏洞~被垃圾程式掃到了~
請把參數規範好即可~
例如可以接收幾個字~或是數字就是數字~
再來單引號一律取代掉~
如果像是留言~都是先驗證碼~以及審核留言通過才顯示~
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
黃彥儒
iT邦高手 1 級 ‧ 2020-10-24 06:01:27

SQL指令也是文字,既然它被存到你的資料庫裡面了,那就是SQL注入失敗。
你該做的是驗證使用者輸入,這看起來是被嘗試攻擊,但是並沒有得逞。

asqweff11 iT邦新手 5 級 ‧ 2020-10-24 20:15:17 檢舉

了解 感謝回復

0
舜~
iT邦高手 1 級 ‧ 2020-10-24 10:52:15

請廠商找出對方IP並加入防火牆的封鎖名單中~~~

同意 黃彥儒 大大所說~
有做防護(特殊字元進行編碼),不過應該沒有消毒~~

黃彥儒 iT邦高手 1 級 ‧ 2020-10-24 16:56:28 檢舉

不知道消毒是不是必須的,就跟Windows裡面的Linux病毒,它不是好東西,但也不會有壞結果

asqweff11 iT邦新手 5 級 ‧ 2020-10-24 20:15:22 檢舉

了解 感謝回復

0
poiu124pat
iT邦新手 2 級 ‧ 2020-10-25 11:58:16

寫一個函式在Server端處理,用來過濾要丟給SQL command的外部來源參數字串,在丟給SQL之前就要先處理過。
比如說前面的人有提到的,SQL injection 常常會用到的單引號,在這個過濾的函示中將'取代為空白。

請注意,這個防禦用的處理函式不建議在Client端和SQL處理,Client端可以用除錯模式繞過這一項防禦,在SQL端可能會造成你自己語法錯誤,衍生出更多安全性問題。

0
japhenchen
iT邦超人 1 級 ‧ 2020-10-26 09:01:02

不要拿POST的資料直接串成SQL語句,如果真的要,也要把接收到的資料把特殊字元代換掉,如單雙引號、反斜、圓括號

我要發表回答

立即登入回答