在 Day 10 的時候,我們介紹了 XSS
這個爺爺奶奶級的漏洞。在相隔11篇的 Day 21 要來介紹也是有一定年代,但是前幾年還是 OWASP 排名第一的漏洞。
Injection 的方式有很多,Day 21 要談的是其中一種。SQL Injection 針對可能會使用到 SQL 語法的使用者輸入區域,輸入具攻擊性的惡意 SQL 語法,導致原始 SQL 語意改變,進而控制受駭者的資料庫。
Injection 這種攻擊方式的存在,是我在大學選課的時候意識到的,當時在找要選什麼課的時候,不小心在搜尋欄按了一個單引號送出就變成下面這個樣子了。
吃不吃得下來我是不知道,畢竟攻擊這種行為是有法律問題的,之前通知過學校,他們好像也不在乎這樣的問題。好吧,正好來當負面教材 σ`∀´)σ
mysqli
類似的語法,錯誤被直接丟出來mssql
第二點就是在 Day 18 中小穹提到的 -會很大聲的說出程式發生的問題
記得大學在修程式設計,老師說:不要把程式執行過程的錯誤訊息丟出去給使用者看,這樣太殘忍了。現在想想,其實對工程師也是滿殘忍的。如果發出去的錯誤訊息包含的程式片段非常關鍵,會導致系統暴露在更高的風險中。
這裡指的是第三點,因為微軟時不時都會出個 Zero Day 驚喜大禮包,而我們知道對方伺服器使用的就是這樣的系統架構時,出了漏洞就知道可以打誰了吧 d(d'∀')