2012-10-21 49 views
2

http://i48.tinypic.com/2dhei4j.png未檢查數據類型的安全問題

它不檢查密碼類型。密碼可以被定義爲4位無符號整數,如果用戶試圖將他/她的密碼更改爲4位無符號整數,那麼它可能會導致錯誤,是否正確?

如果是這樣,什麼樣的錯誤? 只是一個簡單的錯誤消息,或者這可能是一個重大的安全問題? 有人可以緩衝溢出攻擊嗎?

+0

尼斯[SQL注入孔(http://bobby-tables.com)。享受你的服務器pwn3d。究竟是什麼緩衝區擔心溢出?你爲任何他們想要的東西都敞開了大門。 –

+0

嗯讓我讀你給我的鏈接,看看你的意思是讓我的大門敞開。 – antz

+0

newPassword ='1234',custID =「1」或1 = 1 - 「,你去了,我只是拉了[Bobby tables](http://xkcd.com/327/) – Ibu

回答

1

有可能是這裏主要的安全問題!不僅僅是一個錯誤信息。閱讀更多關於SQL注入簡單的規則是,您應該始終對任何字符串用戶輸入進行清理,以確保是,正確的類型,但更重要的是,它不會繞過您的意圖並侵入您的數據庫。

一個簡單的Google搜索返回例如this site

對於.NET,最好使用SqlParameter而不是連接字符串來組成您的SQL查詢。 SqlParameter守衛你對SQL注入......

using (SqlCommand cmd = new SqlCommand("UPDATE tblUser SET Password = @password WHERE [email protected]", conn)) 
{ 
    cmd.Parameters.Add(new SqlParameter("password ", newPassword)); 
    cmd.Parameters.Add(new SqlParameter("custID", custID)); 
... 
+0

太棒了!謝謝!! – antz

1

考慮使用參數而不是字符串連接的,它可能會受到SQL注入攻擊