zoukankan      html  css  js  c++  java
  • 以下登陆代码安全上有什么问题

     1 <?php
     2     $m = $_GET['m'];
     3     $user = $_GET['user'];
     4     $pass = $_GET['pass'];
     5     include($m.”do.php”);
     6     $sql = ”select count(*) as b from user where username=’”.$user.”‘and password=’”.$pass.”‘;
     7     $r = mysql_query($sql);
     8     list($count) = @mysql_fetch_array($r);
     9     if($count>1){
    10 
    11          ……登陆成功操作
    12     }
    13 ?>

    解析以上代码:

      1.用户名跟密码都是通过get方式明文传输的,这是一个严重的问题,虽然post方式也不是特别安全,但对于这些表单提交,还是post方式最好。

      2.没有过滤用户输入,存在严重的sql注入隐患,应该处理用户输入,有一个原则叫:永远不要相信用户的输入。这里就是这个道理

      3.include($m.”do.php”);把用户的输入作为参数,不做处理的话,很容易出现"文件不存在"的异常

      4.sql查询部分:从代码上看,数据库中密码是明文保存的,至少应该做个MD5加密吧

      5.if($count>1),代码错误,难道会有两个以上相同用户名相同密码的账户吗?(即使有也应该是if($count>=1)

  • 相关阅读:
    nodejs内存溢出解决方法
    mongodb副本集与分片结合
    node加密
    守护进程,互斥锁,IPC,队列,生产者与消费者模型
    并发编程
    粘包问题
    socket编程
    xml模块
    网络编程
    异常处理
  • 原文地址:https://www.cnblogs.com/MRPUNK/p/3013356.html
Copyright © 2011-2022 走看看