zoukankan      html  css  js  c++  java
  • 使用参数化SQL

    Java、C#等语言提供了参数化SQL机制,使用参数化SQL开发人员为在运行时才能确定的参数值设置占位符,在执行的时候再指定这些占位符所代表的值。示例代码如下:

    
    string user=txtUser.getText();
    
    string password = txtPassword.getText();
    
    query = CreateQuery("SELECT (FPassword=:password) AS PwdCorrect FROM T_User WHERE FUser=:user");
    
    query.SetParameter(":password ",password);
    
    query.SetParameter(":user", user);
    
    if(rs.getBool("PwdCorrect ")==true)
    
    {
    
        ShowMessage("密码正确");
    
    }
    
    else
    
    {
    
        ShowMessage("密码错误");
    
    }
    

    在上面的例子中,为运行时才能确定的用户名和密码设置了占位符,然后在运行时再设定占位符的值,在执行时Java、C#会直接将参数化SQL以及对应的参数值传递给DBMS,在DBMS中会将参数值当成一个普通的值来处理而不是将它们拼接到参数化SQL中,因此从根本上避免了SQL注入漏洞攻击。建议开发人员使用参数化SQL来代替字符串拼接,不过如果开发的时候采用的ASP、PHP等语言,那么由于这些语言没有提供参数化SQL机制,因此只能采用其它方式来避免了SQL注入漏洞攻击。

  • 相关阅读:
    第一阶段冲刺05
    生成器
    三元表达式 ,列表推导式 , 字典生成式
    装饰器
    闭包函数
    函数的定义和参数
    列表内置方法
    字符串的内置方法
    py_11_ 0731
    py_11_ 0730
  • 原文地址:https://www.cnblogs.com/yuyu666/p/9828065.html
Copyright © 2011-2022 走看看