新聞資訊
當前位置:首頁 > 新聞資訊 > 網(wǎng)站建設(shè)開發(fā)
來源:成都網(wǎng)站建設(shè) 作者:賽維思網(wǎng)絡 發(fā)布日期:2014-04-04 瀏覽:2473次
除了利用表單域的保護較弱這一漏洞,SQL注入攻擊含依賴于approved列恰好位于數(shù)據(jù)庫結(jié)構(gòu)中screenshot列的后面。正是由于這一點,只要在INSERT的最后增加1,就能將這個1設(shè)置到approved列。這里的問題在于構(gòu)建INSERT查詢所采用的做法是必須向所有列插入數(shù)據(jù),而這增加了不必要的風險。可以將INSERT查詢編寫為準確地指定哪些值要放在哪些列中。
在表中插入數(shù)據(jù)時,數(shù)據(jù)的順序必須與表結(jié)構(gòu)中列的順序完全一致。所以數(shù)據(jù)匯進入列中,不過實際上沒有必要顯式地插入ID,因為ID是自增的,而approved初始時總是0,更好的辦法是只插入新數(shù)據(jù)明確需要的數(shù)據(jù)。ID和approved列則可以分別默認為auto_increment和0。
我們需要重新構(gòu)造INSERT查詢,在指定數(shù)據(jù)的一個列表之前先指定列的一個列表,各個列分別對應一個數(shù)據(jù)。這樣就消除了意外設(shè)置approved列的風險,它不再作為查詢的一部分。INSERT查詢準確地指出了各個數(shù)據(jù)要存儲在哪個列中,從而允許你插入數(shù)據(jù)而不必擔心底層表結(jié)構(gòu)。實際上,一般認為使用這種INSERT查詢是一種更好的編程風格,這樣依賴數(shù)據(jù)可以準確地插入到你希望的位置,而不再依賴于表的結(jié)構(gòu)布局。
Copyright ? www.gaccc.cn All Rights Reserved. 成都賽維思網(wǎng)絡技術(shù)有限公司 蜀ICP備13002520號-3 Sitemap