zoukankan      html  css  js  c++  java
  • python中的万能密码

    在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."
    ");
    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

  • 相关阅读:
    SQL 语法总结
    终于开始用github了
    前端开发第一阶段总结
    windows系统快捷操作の高级篇
    windows系统快捷操作の进阶篇
    windows系统快捷操作の基础篇
    安装使用ubuntu问题汇总
    十进制转任意进制
    任意进制转10进制
    爬取妹子图(requests + BeautifulSoup)
  • 原文地址:https://www.cnblogs.com/Triangle-security/p/11277110.html
Copyright © 2011-2022 走看看