python中的万能密码
2024-08-29 02:10:09
在php中,我们经常见到这样的语句
if(isset($_GET['id']))
{
$id=$_GET['id'];
//logging the connection parameters to a file for analysis.
$fp=fopen('result.txt','a');
fwrite($fp,'ID:'.$id."\n");
fclose($fp); // connectivity $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
但是这样的sql语句,会造成一种叫做万能密码登录的漏洞。这种漏洞在用户登录的时候,不用进行知道密码,只需要知道用户名就可以。比如用户名是admin' or '1'='1 密码为空。这样就能使得用户的账号直接被登录了。
对比在Pythonh中的sql执行语句
user = User.query.filter(User.password == password , User.telephone == telephone).first()
python中的语句也是这样同样是用户密码在数据库中进行对比,怎么两个执行的结果还不一样?
这里我导入的一个sqlalchemy库,这个库封装的非常好,把那些可疑的字符全部都进行过滤了。用sqlalchemy里面的sql语句,就可以避免所谓的万能密码登录了
看来学习Python还是挺好的呀
2019-08-01
最新文章
- 分布式中使用Redis实现Session共享(二)
- HDU 5875 Function (2016年大连网络赛 H 线段树+gcd)
- CyclicBarrier、CountDownLatch与Semaphore的小记
- 验证dictionary重复键
- 秒杀多线程第八篇 经典线程同步 信号量Semaphore
- 从Hadoop骨架MapReduce在海量数据处理模式(包括淘宝技术架构)
- libsvm工具箱C++编程实践2
- 06、NetCore2.0依赖注入(DI)之整合Autofac
- java将对象转map,map转对象工具类
- nodejs-POST数据处理
- truffle init 从零开始创建简单DApp项目
- java中long类型的比较
- Django框架的使用教程--视图和路由[二]
- Docker for Windows 代理设置(linux container)
- C# 尝试读取或写入受保护的内存。这通常指示其他内存已损坏
- bundle adjustment 玩具程序
- spring学习十九 常用注解
- TED_Topic7:How we unearthed the spinosaurus
- bzoj千题计划139:bzoj2229: [Zjoi2011]最小割
- java 调整jvm堆大小上限