Python进阶——SQL注入实例

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 概述SQL注入是一种十分常见的网络攻击行为,主要是通过非法参数执行 sql 语句,进行预期之外的操作。原因:传入的参数改变SQL的语义,变成了其他命令,从而操作了数据库解决方式:SQL语句使用拼接的方式,禁止使用非法参数常用的注入方式(万能密码):'2 or 1=1'或' or 1 = 1 or '原本 sql 语句的判断条件被 or 短路成为了永远正确的语句

概述

SQL注入是一种十分常见的网络攻击行为,主要是通过非法参数执行 sql 语句,进行预期之外的操作。

原因:传入的参数改变SQL的语义,变成了其他命令,从而操作了数据库

解决方式:SQL语句使用拼接的方式,禁止使用非法参数

常用的注入方式(万能密码):'2 or 1=1'或' or 1 = 1 or '

原本 sql 语句的判断条件被 or 短路成为了永远正确的语句



代码实现

# 1. 导包import pymysql
if __name__ =='__main__':
# 2. 创建连接对象# connect = Connection = Connect 本质上是一个函数,使用这三个里面的任何一个函数都可以创建一个连接对象# 1. host : 服务器的主机地址# 2. port: mysql数据库的端口号# 3. user: 用户名# 4. password:密码# 5. database: 操作的数据库# 6. charset: 操作数据库使用的编码格式    conn = pymysql.connect(host="localhost",
port=3306,
user="root",
password="mysql",
database="python41",
charset="utf8")
# 3. 获取游标, 目的就是要执行sql语句    cursor = conn.cursor()
# 准备sql, 之前在mysql客户端如何编写sql,在python程序里面还怎么编写    sql ="select * from students where name = '%s';" % "黄蓉' or 1 = 1 or '"    print(sql)
# 4. 执行sql语句    cursor.execute(sql)
# 获取查询的结果, 返回的数据类型是一个元组# row = cursor.fetchone()# print(row)# 返回的数据类型是一个元组,其中元组里面的每条数据还是元组    result = cursor.fetchall()
for row in result:
        print(row)
# 5. 关闭游标    cursor.close()
# 6. 关闭连接    conn.close()
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
SQL 数据管理 数据库
SQL语句实例教程:掌握数据查询、更新与管理的关键技巧
SQL(Structured Query Language,结构化查询语言)是数据库管理和操作的核心工具
|
12天前
|
SQL 数据挖掘 Python
数据分析编程:SQL,Python or SPL?
数据分析编程用什么,SQL、python or SPL?话不多说,直接上代码,对比明显,明眼人一看就明了:本案例涵盖五个数据分析任务:1) 计算用户会话次数;2) 球员连续得分分析;3) 连续三天活跃用户数统计;4) 新用户次日留存率计算;5) 股价涨跌幅分析。每个任务基于相应数据表进行处理和计算。
|
17天前
|
测试技术 API 数据安全/隐私保护
Python连接到Jira实例、登录、查询、修改和创建bug
通过使用Python和Jira的REST API,可以方便地连接到Jira实例并进行各种操作,包括查询、修改和创建Bug。`jira`库提供了简洁的接口,使得这些操作变得简单易行。无论是自动化测试还是开发工作流的集成,这些方法都可以极大地提高效率和准确性。希望通过本文的介绍,您能够更好地理解和应用这些技术。
55 0
|
1月前
|
Python
Python中的push方法详解与实例
Python中的push方法详解与实例
|
1月前
|
SQL 机器学习/深度学习 数据库
SQL与Python集成:数据库操作无缝衔接
在开始之前,确保你已经安装了必要的Python库,如`sqlite3`(用于SQLite数据库)或`psycopg2`(用于PostgreSQL数据库)。这些库提供了Python与SQL数据库之间的接口。
|
1月前
|
Python
Python 练习实例100
Python 练习实例100
|
1月前
|
Python
Python 练习实例98
Python 练习实例98
|
1月前
|
数据处理 Python
Python内置时间模块:Datetime实例详解(一)
Python内置时间模块:Datetime实例详解(一)
|
1月前
|
Python
Python 练习实例99
Python 练习实例99
|
2月前
|
Python
Python 练习实例97
Python 练习实例97