zoukankan      html  css  js  c++  java
  • 数据库2012终于知道数据库攻击注入参数

    update Employ set salary =50000 where id=5;

    瞎搞攻击数据库

    update Employ set salary=150000 where FirstName='John' and LastName='Doe';

    Update Employ set salary =50000 where id=5;

    这样既满足了数据库中要执行语句的要求也达到了足智多谋的目的,这就是所谓的攻击注入

    如何防攻击呢?

    第一个有标准化形式    需要用户输入的部分已经用占位符@name的形式命名好,在传递给数据库之后,这一元素会被类型专有的最终值所替代。

    @的作用   在为参数准备语句时,所有最终将被参数值替代的元素都会用一个“@”标识符所替代

    UPdate Employee set Salary=@NewSalary where id=@EmployeeID;//id将会被参数值替代

    我们所需要的参数都包装在sqlParameter的实例中,根据需要设置其属性,并把它添加到SqlCommand.Paramters.在执行这个命令时,ADO.net将加载占位符的SQL文本和参数集合都传递给数据库进行求值。 每个占位符都包含所期待的元素:参数名(他的长度与SQL语句中的占位符名称匹配)。

    最重要的一句就是:要像命令中添加一个参数,就可以创建一个SqlParameter实例,并把它添加到SqlCommand对象。

    例如,

    paramValue=new SqlParameter("@EmployID",SqlDType.BigInt);

    paramValue=25L;

    salaryUpdate.Parameter.Add(paramValue);

    既然有salaryUpdate.Parameter.Add(paramValue)  salaryUpdate是存储过程中的的?

  • 相关阅读:
    模板
    CF1271E Common Number
    模板——长链剖分
    XJOI NOIP501/511训练22 ttt学字符串
    POJ 1151 Atlantis
    BZOJ 1014 [JSOI2008]火星人prefix
    Luogu P1856 [USACO5.5]矩形周长Picture
    CF716D Complete The Graph
    Luogu P2596 [ZJOI2006]书架
    HTML 学习之JavaScript作用域
  • 原文地址:https://www.cnblogs.com/jhqx/p/4669838.html
Copyright © 2011-2022 走看看