关于Mysql + asp.net注射能支持多语句的感慨

简介: 在一篇老外的文章里面看到一个图表,致使Mysql + Asp.Net 注入时支持多语句真的?有点不信,测试了下:    protected void Page_Load(object se...

在一篇老外的文章里面看到一个图表,致使Mysql + Asp.Net 注入时支持多语句

真的?有点不信,测试了下:

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            Response.Write("使用Mysql.Data.MySqlClient<br /><br />");
            string myConnectionString = "server=localhost;user id=root;password=123456;database=test";
            MySqlConnection myConnection = new MySqlConnection(myConnectionString);
            string myQuery = "select * from admin where id=" + Request.QueryString["id"];
            Response.Write("SQL:" + myQuery + "<br />");
            MySqlCommand myCommand = new MySqlCommand(myQuery, myConnection);
            myConnection.Open();
            myCommand.ExecuteReader();
            myCommand.Connection.Close();
        }
        catch (MySqlException err)
        {
            Response.Write("Error:" + err.Message);
        }
       
        //try
        //{
        //    Response.Write("使用Mysql ODBC驱动<br /><br />");
        //    string myConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=test;UID=root;PASSWORD=123456;OPTION=3";
        //    string myQuery = "select * from admin where id=" + Request.QueryString["id"];
        //    Response.Write("SQL:" + myQuery + "<br />");
        //    OdbcConnection myConnection = new OdbcConnection(myConnectionString);
        //    OdbcCommand myCommand = new OdbcCommand(myQuery, myConnection);
        //    myConnection.Open();
        //    myCommand.ExecuteReader();
        //    myCommand.Connection.Close();
        //}
        //catch(OleDbException err)
        //{
        //    Response.Write("Error:" + err.Message);
        //}
    }

这里面是连接mysql常用的两个方式,一个是用Mysql.Data.MySqlClient这个类。二个try是使用更加传统的odbc方式。

Step 1:注释第一个代码段,访问http://localhost:2928/MysqlInj_test/MysqlInj_test.aspx?id=1;create table test(i int) 结果得到如下的错误信息:

“/MysqlInj_test”应用程序中的服务器错误。
--------------------------------------------------------------------------------

ERROR [42000] [MySQL][ODBC 3.51 Driver][mysqld-5.0.45-community-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';create table test(i int)' at line 1

到test库下面看,表test没有被创建

Step 2:注释第二个代码段,刷新页面。页面返回

使用Mysql.Data.MySqlClient

SQL:select * from admin where id=1;create table test(i int)

继续按F5刷新这个页面,得到如下消息

使用Mysql.Data.MySqlClient

SQL:select * from admin where id=1;create table test(i int)
Error:Table 'test' already exists

跑到test库看,果然有个叫test的表被创建了。乖乖,看来老外说的是真的,但是对了一半。

原来Mysql能不能多语句执行,这和处理它的数据库驱动有很大关系。不知道是不是绝对联系,但是至少是一个重要的因素。

推而广之呢?

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
关系型数据库 MySQL
cmd中输入net start mysql 提示:服务名无效或者MySQL正在启动 MySQL无法启动
cmd中输入net start mysql 提示:服务名无效或者MySQL正在启动 MySQL无法启动
|
SQL 存储 缓存
SQL语句在MySQL中是如何执行的
SQL语句在MySQL中是如何执行的
274 0
|
SQL 关系型数据库 MySQL
SQL语句编写的练习(MySQL)
这篇文章提供了MySQL数据库中关于学生表、课程表、成绩表和教师表的建表语句、数据插入示例以及一系列SQL查询练习,包括查询、排序、聚合和连接查询等操作。
|
关系型数据库 MySQL 数据库
Net Core备份MySQL数据库
Net Core备份MySQL数据库
312 2
|
SQL 关系型数据库 MySQL
【SQL异常】启动MySQL时发生系统错误的解决方法(net start mysql 发生系统错误 5。 拒绝访问)
【SQL异常】启动MySQL时发生系统错误的解决方法(net start mysql 发生系统错误 5。 拒绝访问)
1468 1
|
关系型数据库 MySQL
报错Mysql:net start mysql 服务名无效
报错Mysql:net start mysql 服务名无效
1568 0
|
关系型数据库 MySQL 数据库
NET连接MySQL数据库的CRUD
NET连接MySQL数据库的CRUD
337 0
NET连接MySQL数据库的CRUD
|
关系型数据库 MySQL Java
NET连接MySQL数据库
NET连接MySQL数据库
375 0
NET连接MySQL数据库
|
SQL Oracle 网络协议
【.NET 6】使用EF Core 访问Oracle+Mysql+PostgreSQL并进行简单增改操作与性能比较
唠嗑一下。都在说去O或者开源,但是对于数据库选型来说,很多人却存在着误区。例如,去O,狭义上讲,是去Oracle数据库。但是从广义上来说,是去Oracle公司产品或者具有漂亮国垄断地位和需要商业授权的数据库产品。
1065 0
【.NET 6】使用EF Core 访问Oracle+Mysql+PostgreSQL并进行简单增改操作与性能比较
|
开发框架 关系型数据库 MySQL
Asp.Net Core Identity+EFCore + Mysql踩坑记录
Asp.Net Core Identity+EFCore + Mysql踩坑记录
461 0

推荐镜像

更多