什么是SQL注入?如何防止它?

什么是SQL注入?如何防止它?

SQL注入是一种网络黑客技术。它是将恶意代码插入到数据库中并破坏数据库的代码注入技术。这是通过网页输入插入恶意代码。

SQL注入的主要原因是巧妙地将数据输入到SQL查询中,从而操作我们数据库中的数据。

假设我们有一张包含学生数据的表格。每个学生都可以使用他的学生ID查看自己的数据。SQL查询被设计为从学生处获取学生ID输入。

现在,学生可以将他的学生ID输入为“12345或1=1”。这会转换成以下查询。

SELECT * FROM Students WHERE id==12345 or 1=1

现在,上述查询将返回其他学生的记录,因为1=1总是为真。因此,其他学生的数据不安全,容易被黑客误用。

Mysql连接器模块有一种方法可以转义查询值,以防止SQL注入。可以使用占位符%s来转义查询值。

假设我们有一张名为“MyTable”的表格。

+----------+---------+-----------+------------+
|    Name  | Class   |    City   |    Marks   |
+----------+---------+-----------+------------+
|    Karan |    4    | Amritsar  |    95      |
|    Sahil |    6    | Amritsar  |    93      |
|    Kriti |    3    | Batala    |    88      |
|   Khushi |    9    | Delhi     |    90      |
|    Kirat |    5    | Delhi     |    85      |
+----------+---------+-----------+------------+

更多Python相关文章,请阅读:Python 教程

示例

import mysql.connector

db=mysql.connector.connect(host="你的主机", user="你的用户名", password="你的密码",database="数据库名")

cursor=db.cursor()

query="SELECT * FROM Students WHERE Name=%s"
name=("Karan",)

cursor.execute(query,name)

for row in myresult:
   print(row)

上述代码显示了使用占位符来转义查询值的方法。

输出

(‘Karan’, 4, ‘Amritsar’ , 95)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程