2016-05-07 14 views
0

従来のaspでパラメータ化されたクエリを使用して、パラメータの改ざんを防止できますか?もしそれを防ぐ適切な方法は何ですか?パラメータ化されたクエリを使用したパラメータの改ざん防止

ありがとうございます。

<% 
    Set conn = Server.CreateObject("ADODB.Connection") 
    conn.Open "some connection string" 

    set cmd = Server.CreateObject("ADODB.Command") 
    cmd.ActiveConnection = conn 
    cmd.CommandText = "SELECT * FROM some_table WHERE id = ?" 
    cmd.CommandType = adCmdText 
    cmd.Parameters.Append cmd.CreateParameter("@id", adInteger, adParamInput, request("id")) 

    set rs = cmd.Execute 
    ... 
%> 

この例では、ユーザの入力(request("id"))から来ていると、クエリでidパラメータがパラメータ化される:あなたのSQLクエリは、あなたがそうのようにそれらをパラメータができ作るためにADODBを使用していると仮定すると

答えて

0

+0

これは、パラメータ改ざん攻撃が防止されていることを意味しますか? –

+1

この文脈では、「パラメータ改ざん攻撃」が何を意味するのかよくわかりません。パラメータ化されたクエリの目的は、通常、ユーザ入力がサニタイズせずに直接使用されるときに達成できるSQLインジェクションからあなたを守ることです。パラメータ化されたクエリは、データベースエンジンに送信する前に、ユーザー入力が適切に消毒されることを保証します。 –

+0

@GrigorisPapoutsisユーザーは悪意のあるコンテンツを引き続き送信することができます。 [XSS攻撃](https://en.wikipedia.org/wiki/Cross-site_scripting) - これらを防ぐには、入力の内容を実際に確認するか、表示時に墨塗りをする必要があります。 –

関連する問題