成都賽維思網絡技術有限公司

新聞資訊

當前位置:首頁 > 新聞資訊 > 網站建設開發

一個更安全的INSERT

來源:成都網站建設    作者:賽維思網絡    發布日期:2014-04-04    瀏覽:2383次

除了利用表單域的保護較弱這一漏洞,SQL注入攻擊含依賴于approved列恰好位于數據庫結構中screenshot列的后面。正是由于這一點,只要在INSERT的最后增加1,就能將這個1設置到approved列。這里的問題在于構建INSERT查詢所采用的做法是必須向所有列插入數據,而這增加了不必要的風險。可以將INSERT查詢編寫為準確地指定哪些值要放在哪些列中。

在表中插入數據時,數據的順序必須與表結構中列的順序完全一致。所以數據匯進入列中,不過實際上沒有必要顯式地插入ID,因為ID是自增的,而approved初始時總是0,更好的辦法是只插入新數據明確需要的數據。ID和approved列則可以分別默認為auto_increment和0。

我們需要重新構造INSERT查詢,在指定數據的一個列表之前先指定列的一個列表,各個列分別對應一個數據。這樣就消除了意外設置approved列的風險,它不再作為查詢的一部分。INSERT查詢準確地指出了各個數據要存儲在哪個列中,從而允許你插入數據而不必擔心底層表結構。實際上,一般認為使用這種INSERT查詢是一種更好的編程風格,這樣依賴數據可以準確地插入到你希望的位置,而不再依賴于表的結構布局。
 

Copyright ? www.yrgym.cn All Rights Reserved. 成都賽維思網絡技術有限公司  蜀ICP備13002520號-3   Sitemap