sql注入和防sql注入
sql注入:
from pymysql import * def main():
# 创建连接
conn = connect(host="127.0.0.1", port=3306, database="python_1", user="root", password="mysql", charset="utf8")
# 创建cursor对象
cursor = conn.cursor()
find_name = input("请输入要查询的商品名称:") # ' or 1=1 or '1
# sql = "select * from test;"
sql = """select * from test where name='%s';""" % find_name;
# 打印sql语句
print("------->%s<------" % sql) # select * from test where name='' or 1=1 or '1';
# 执行sql语句
cursor.execute(sql)
for temp in cursor.fetchall():
print(temp) # (1, 'laoli') (2, 'zhangsan') (3, 'laowang')
# 关闭数据库
cursor.close()
conn.close() if __name__ == '__main__':
main()
结果:
请输入要查询的商品名称:' or 1=1 or '1
------->select * from test where name='' or 1=1 or '1';<------
(1, 'laoli')
(2, 'zhangsan')
(3, 'laowang')
防sql注入:
from pymysql import * def main():
# 创建连接
conn = connect(host="127.0.0.1", port=3306, database="python_1", user="root", password="root", charset="utf8")
# 创建cursor对象
cursor = conn.cursor()
find_name = input("请输入要查询的商品名称:") # ' or 1=1 or '1
sql = "select * from test where name=%s"
# 打印sql语句
print("------->%s<------" % sql) # select * from test where name=%s;
# 执行sql语句 把find_name放在中括号中传到execute()方法中去
cursor.execute(sql,(find_name,)) # excute(sql语句,元祖) 元祖里放参数
for temp in cursor.fetchall():
print(temp) #
# 关闭数据库
cursor.close()
conn.close() if __name__ == '__main__':
main()
结果:
请输入要查询的商品名称:' or 1=1 or '1
------->select * from test where name=%s<------ 进程已结束,退出代码0
sql注入和防sql注入的更多相关文章
- 【荐】PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项
我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下几个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特 ...
- C#语言Winform防SQl注入做用户登录的例子
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- PHP防SQL注入不要再用addslashes和mysql_real_escape_string
PHP防SQL注入不要再用addslashes和mysql_real_escape_string了,有需要的朋友可以参考下. 博主热衷各种互联网技术,常啰嗦,时常伴有强迫症,常更新,觉得文章对你有帮助 ...
- mysql之数据库连接的方法封装及防sql注入
一.定义数据库和表 create database animal; CREATE TABLE `pet` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name ...
- 万能写入sql语句,并且防注入
通过perpare()方法和检查字段防sql注入. $pdo=new PDO('mysql:host=localhost;dbname=scms', 'root' ); $_POST=array('t ...
- nginx服务器防sql注入/溢出攻击/spam及禁User-agents
本文章给大家介绍一个nginx服务器防sql注入/溢出攻击/spam及禁User-agents实例代码,有需要了解的朋友可进入参考. 在配置文件添加如下字段即可 代码如下 复制代码 server { ...
- C#防SQL注入代码的实现方法
对于网站的安全性,是每个网站开发者和运营者最关心的问题.网站一旦出现漏洞,那势必将造成很大的损失.为了提高网站的安全性,首先网站要防注入,最重要的是服务器的安全设施要做到位. 下面说下网站防注入的几点 ...
- php防sql注入、xss
php自带的几个防止sql注入的函数http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2013/0318/12234.html addslashe ...
- Sqlparameter防SQL注入
一.SQL注入的原因 随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对 ...
随机推荐
- SpringBoot + Mybaties的逆向工程有数据库生成domain的过程
环境: jdk1.8 (适合springboot2.X以上版本) Maven(3.3.X以上) spring boot 2.1.6 Idea 2019.1\ 这里随便填 选择相应的Jar,如以下的勾 ...
- 【python小记】访问mysql数据库
题记: 最近因为工作需要,学习了python,瞬间对这个轻松快捷的语给吸引了,以前只知道js脚本是写网页的,没有想到python这个脚本语言的应用范围可以这么广泛,现在做一些简单或稍微复杂的操作,基本 ...
- Java反射桥接方法解析
在阅读mybaits源码的反射模块时,看到了如下的一段代码: /** * 添加 Method 数组到 uniqueMethods * @param uniqueMethods * @param met ...
- C++ 读写 Excel 文件
//Microsoft Visual Studio 2015 Enterprise #include <fstream> #include <string> #include ...
- 【IDEA使用技巧】(5) —— IntelliJ IDEA集成Tomcat部署Maven Web项目
1.IntelliJ IDEA集成Tomcat部署Maven Web项目 1.1.IDEA构建Maven Web项目 使用IDEA来创建一个简单的Hello World的Maven Web项目,并使用 ...
- Modelsim——工程建立和常用设置
Modelsim是一款优秀的FPGA仿真软件,这里记录一下Modelsim的基本使用. 一.联合仿真 联合仿真,即Quartus ii自己调用Modelsim,Modelsim自动出现仿真波形. 1. ...
- .Net 取树形结构的数据
最近遇到了无限层级数据要读取的问题,所有就写了个. 根据当前所有父级,查询出子级内容 private void GetTypeOfWorkforTree(out List<TypeOfWorkD ...
- php-sql-server-2017
Download the Microsoft Drivers for PHP for SQL Server https://docs.microsoft.com/en-us/sql/connect/p ...
- 解决SecureCRT 中文乱码??
在linux服务器上搭建solr,用的是SecureCRT 连接linux服务器,发现不能输入中文,配置文件中的中文也是乱码:先以为是SecureCRT工具编码的问题,把编码改成utf-8之后发现还 ...
- 微信小程序 image组件坑
远程图片 在真机上测试时 image组件只能显示http请求的图片, 对https 与 //xxx.xxx.xx 之类的不能显示. 可显示 'http://img.alicdn.com/i2/8323 ...