安全登录系统

时间:2015-04-21 14:39:16

标签: php pdo xss sql-injection

该任务是为SQL注入和XSS创建一个安全的登录系统。

它在PHP中,我很明显地使用PDO和准备好的语句。从我的观点来看,至少应该保护最简单的注射。我在系统中投掷的那些是无效的。

如果您认为SQL注入不安全,我很乐意接受评论以及应该采取什么措施的示例。

关于XSS,我还没有采取任何措施来保护它。从学校我相信它主要是关于输入的html或url编码。但这还够吗?从谷歌我也有一些关于sql转义的文章。

再说一遍,对XSS保护的评论或帮助可能不错,或者只是在输入到达sql查询之前转移输入?

代码:

function Log_in($username, $password) {
$db = new PDO("host;dbname", "user", "password");
$login = $db -> prepare("SELECT * FROM Users WHERE Username =:username and Password =:password");
$login->bindValue(':username', $username, PDO::PARAM_STR);
$login->bindValue(':password', $password, PDO::PARAM_STR);
$login->execute();

global $count;
$count = $login->rowCount();

global $data;
$data=$login->fetchColumn(2);
return $count;
return $data;
}

$username = trim($_POST["username"]);
$password = trim($_POST["password"]);

if (isset($_POST['submit'])) {
    getSalt($username);
    foreach ($rowset as $row) {
        $salt = $row[0];        
    }

    $hashpassword = sha1($password.$salt);
    Log_in($username, $hashpassword);
    if($count==1){
        session_start();
        $_SESSION['email'] = $data;
        header("location:index.php");
    }   else {
        echo "Wrong";
    }
}

0 个答案:

没有答案