首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这段代码安全吗- PHP && MySQL

这段代码安全吗- PHP && MySQL
EN

Stack Overflow用户
提问于 2009-05-27 10:37:29
回答 6查看 228关注 0票数 0
代码语言:javascript
复制
<?php
class test_class {

        public function __construct() { 

        }
        public function doLogin($username,$password) {

            include("connection.php");

            $query = "SELECT *
                      FROM users
                      WHERE username = '".mysql_escape_string($username)."'
                      AND password = '".mysql_escape_string($password)."'";
            $result = mysql_fetch_array(mysql_query($query));
            if(!$result) {

            return 'no';
            }
            else 
                {
            return 'yes';
                }
            }


}
?>

上面的代码可以工作,但有点担心它是否安全。

注意:我没有使用POST方法,所以我必须在函数中接收它作为参数,并且我不能使用。

代码语言:javascript
复制
if (isset($_POST['username']) && isset($_POST['password']))
        {
        $username= $_POST['username'];
        $password= $_POST['password'];
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-05-27 10:49:07

代码可能是安全的,但实现不是很好。你永远不应该以明文形式存储身份验证密码。你应该对它进行加密和散列。

我可以花一个小时解释原因,但你会做得更好just reading this

票数 5
EN

Stack Overflow用户

发布于 2009-05-27 10:49:12

查询本身看起来是安全的,但如果使用支持参数绑定的DB接口,比如PDO或Zend_Db,就不必如此紧张地仔细检查每条SQL语句。

此外,mysql-*函数几乎已被弃用;您应该改为使用mysqli-*函数。

顺便说一下,空的构造函数没有意义,我建议返回布尔值true或false,而不是字符串值。

最后,正如前面提到的,存储明文密码不是一个好主意。

票数 4
EN

Stack Overflow用户

发布于 2009-05-27 10:47:14

嗯..。你在存储明文密码?这肯定是不安全的。密码应该使用类似于sha256的盐进行散列。存储明文密码从来都不是一个好主意。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/915057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档