2013-01-16 135 views
0

我使用asp.net創建了我的網站。我用ado.net在我的數據庫中執行insert,update,delete函數(sqlserver 2005)。我的數據庫遭到黑客攻擊。 每個記錄我的表是由注入數據這樣如何保護我的網站

</title><style>.as9y{position:absolute;clip:rect(441px,auto,auto,441px);}</style><div class=as9y>secured <a href=http://5mincashadvance.com >payday loans</a></div> 

,請幫助我,我怎樣才能防止這種垃圾郵件注入..

這是例如插入功能的

myStatic.insertFields("Name, Phone, Mail, Title, Body", " U_Complaint", "'" + txtName.Text 
      + "','" + txtPhone.Text + "','" + txtmail.Text + "','" + txtTitle.Text + "','" + txtBody.Text + "'"); 

所以這個代碼中有任何錯誤..如果不是最新的錯誤....

+0

你將其送入insertFields之前驗證所有輸入?如果不是的話,那就是你的記錄很好的問題,叫做sql-injection。請參閱右側的相關主題! – GitaarLAB

+1

使用['SQL-參數'](http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparameter.aspx)來防止[sql-injection](http:// weblogs。 asp.net/scottgu/archive/2006/09/30/Tip_2F00_Trick_3A00_-Guard-Against-SQL-Injection-Attacks.aspx)。使用[Anti-Cross Site Scripting Library](http://msdn.microsoft.com/zh-cn/library/aa973813.aspx)來防止[cross-site-scripting](http://de.wikipedia.org /維基/跨站腳本)。 –

+0

這不是插入的實際代碼。執行acutal插入的代碼是使用SqlConnection,SqlCommand等類的代碼。對於初學者,您應該通過使用SqlCommand參數來添加值。 – mortb

回答

0

不插入數據,而不使用sql參數,而不是驗證enteries以防止sql注入。

下面是示例

SqlCommand com=new SqlCommand("insert into table1 (columns1,columns2) values (@columns1,@columns2)",sqlCon); 
com.Parameters.AddWithValue("@columns",value);