2011-08-17 11 views
0

を発行これは私のASP.NETコードです:asp.net接続が

<html> 
<body> 

<% 
Dim Conn 
Conn = "Provider=xxxxxx; Server=xxxxxx; Database=xxxxxx; Trusted_Connection=xxx; " 


sql="INSERT INTO xxxx" 
sql=sql & " VALUES " 
sql=sql & "('" & Request.Form("xxxx") & "'," 
sql=sql & "'" & Request.Form("xxxx") & "'," 
sql=sql & "'" & Request.Form("xxxx") & "'," 
sql=sql & "'" & Request.Form("xxxx") & "'," 
sql=sql & "'" & Request.Form("xxxx") & "'," 
sql=sql & "'" & Request.Form("xxxx") & "'," 
sql=sql & "'" & Request.Form("xxxx") & "'," 
sql=sql & "'" & Request.Form("xxxx") & "'," 
sql=sql & "'" & Request.Form("xxxx") & "'," 
sql=sql & "'" & Request.Form("xxxx") & "'," 
sql=sql & "'" & Request.Form("xxxx") & "'," 
sql=sql & "'" & Request.Form("xxxx") & "'," 
sql=sql & "'" & Request.Form("xxxx") & "')" 

on error resume next 
Conn.Execute sql,recaffected 
if err<>0 then 
    Response.Write("Update Failed") 
else 
    Response.Write("<h3>"Record Added</h3>") 
end if 

%> 

</body> 
</html> 

は、私はいつも「アップデートに失敗しました」の結果を得る...あなたはこれが理由コードから見ることができますか?

答えて

1

は、SQLインジェクションの脆弱性を排除する主要なリファクタリングを提案します。

Dim conn As New SqlConnection(SomeConnectionString) 
Dim cmd As SqlCommand = conn.CreateCommand() 

conn.Open() 
cmd.CommandText="INSERT INTO MyTable(Column1, Column2) " & _ 
        " VALUES (@Value1, @Value2)" 
cmd.Parameters.AddWithValue("@Value1", Request.Form("xxxx")) 
cmd.Parameters.AddWithValue("@Value2", Request.Form("xxxx")) 
'add all your parameters as per above ' 

cmd.ExecuteNonQuery() 
0

コマンドテキストを取り出して手順を実行する必要があります。それ以外の場合は、セキュリティホールに自分自身を開きます。あなたのUIやコードビハインドには、決してSQLコマンドを入れないでください。ベストプラクティスはストアドプロシージャです。