【问题标题】:Parameter tampering prevention using parameterized queries使用参数化查询防止参数篡改
【发布时间】:2016-05-07 12:47:26
【问题描述】:

是否可以通过在经典 asp 中使用参数化查询来防止参数篡改。如果不是正确的预防方法是什么?

谢谢。

【问题讨论】:

    标签: parameters asp-classic parameterized tampering


    【解决方案1】:

    假设您使用 ADODB 进行 SQL 查询,您可以像这样对它们进行参数化:

    <%
        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
        ...
    %>
    

    在此示例中,查询中的 id 参数被参数化,因为它来自用户输入 (request("id"))。

    【讨论】:

    • 这是否意味着已经阻止了参数篡改攻击?
    • 我不确定parameter tampering attack 在这种情况下是什么意思。参数化查询的目的是保护您免受 SQL 注入的影响,这通常可以在直接使用用户输入而不进行清理的情况下实现。参数化查询将确保用户输入在发送到数据库引擎之前得到适当的清理。
    • @GrigorisPapoutsis 用户仍然可以发送恶意内容,例如XSS attack - 为了防止这些,您必须实际检查输入的内容,或者确保在显示时对其进行清理。
    • 好的,我想我现在明白了。非常感谢你们。
    猜你喜欢
    • 2010-12-02
    • 2019-07-15
    • 2016-03-03
    • 1970-01-01
    • 2021-12-30
    • 2023-03-23
    • 1970-01-01
    • 2020-05-01
    • 1970-01-01
    相关资源
    最近更新 更多