程序員漫畫,數據庫注入式攻擊
今天我們看一幅數據庫注入式攻擊的漫畫。記得上大三那會兒,我們的老師還讓我們用一條語句直接在學校官網,直接拿到學校所有錄取的新生詳細信息,我當時試了試,很多學校的官網都可以。不過方正教務系統(tǒng)攻擊不進去,輸入完了直接告訴我IP已經被記錄。好了,廢話不多說,看漫畫。
看漫畫的上半部分。一個小男孩跑去給醫(yī)生打了一針后開開心心的回去了。我稱之為醫(yī)生對小男孩進行了一次操作。
回家后,小男孩發(fā)現(xiàn)。我的桌子(table 又指表,傳說中的老外的一語雙關)沒拉。為什么回去發(fā)現(xiàn)我的表沒了呢?
仔細想想,醫(yī)生打的那針可能不是普通的針,居然是一條SQL語句。此處暗諷,在數據庫操作中,我們直接將用戶輸入的數據進行拼裝SQL語句,帶來的安全性問題。舉個列子:我們需要更新張三的分數。我們等待用戶輸入如果程序沒有實施類型強制,就會發(fā)生這種形式的注入攻擊,例如:UPDATE subject SET score= ? where name = 'zhang3'如果成績被惡意偽造為100; DROP TABLE users #此時SQL語句就會發(fā)生變化UPDATE subject SET score= 100; DROP TABLE users; # where name = 'zhang3'它會將“users”表從數據庫中刪除