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
を使用していると仮定すると
これは、パラメータ改ざん攻撃が防止されていることを意味しますか? –
この文脈では、「パラメータ改ざん攻撃」が何を意味するのかよくわかりません。パラメータ化されたクエリの目的は、通常、ユーザ入力がサニタイズせずに直接使用されるときに達成できるSQLインジェクションからあなたを守ることです。パラメータ化されたクエリは、データベースエンジンに送信する前に、ユーザー入力が適切に消毒されることを保証します。 –
@GrigorisPapoutsisユーザーは悪意のあるコンテンツを引き続き送信することができます。 [XSS攻撃](https://en.wikipedia.org/wiki/Cross-site_scripting) - これらを防ぐには、入力の内容を実際に確認するか、表示時に墨塗りをする必要があります。 –