这段代码是安全的 - PHP && MySQL

Kev*_*vin 0 phpunit

<?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';
                }
            }


}
?>
Run Code Online (Sandbox Code Playgroud)

上面的代码有效,但有点担心它的安全性与否.

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

if (isset($_POST['username']) && isset($_POST['password']))
        {
        $username= $_POST['username'];
        $password= $_POST['password'];
Run Code Online (Sandbox Code Playgroud)

Oli*_*Oli 5

代码可能是安全的,但实现并不是很好.您永远不应将身份验证密码存储为纯文本.你应该加盐并哈希.

我可以用一个小时来解释原因,但是你只需阅读这篇文章就能做得更好.