我需要清理php中的登录值吗
下面是我在登录页面中使用的脚本我需要清理php中的登录值吗,php,Php,下面是我在登录页面中使用的脚本 <?php //include config require_once('includes/config.php'); //check if already logged in move to home page if ($user->is_logged_in()) { header('Location: index.php'); } //process login form if submitted if (isset($_POST['s
<?php
//include config
require_once('includes/config.php');
//check if already logged in move to home page
if ($user->is_logged_in()) {
header('Location: index.php');
}
//process login form if submitted
if (isset($_POST['submit'])) {
$username = filter_input(INPUT_POST, 'username');
$password = filter_input(INPUT_POST, 'password');
if ($user->login($username, $password)) {
$_SESSION['username'] = $username;
header('Location: memberpage.php');
exit;
} else {
$error[] = 'Wrong username or password or your account has not been activated.';
}
}//end if submit
//define page title
$title = 'Login';
//include header template
require('layout/header.php');
?>
密码验证()代码
公共函数密码\u验证($password,$hash){
如果(!function_存在('crypt')){
触发错误(“密码验证必须加载密码才能正常工作”,E用户警告);
返回false;
}
$ret=crypt($password,$hash);
如果(!is_string($ret)| strlen($ret)!=strlen($hash)| strlen($ret)这真的有效吗
我明白了:
if($this->password_verify($password,$hashed) == 1){
但是您的类中没有password\u verify()
方法。如果您指的是password\u verify()
函数,则应将其更改为:
if(password_verify($password,$hashed)){
为了回答您的问题,您使用的是预处理语句,因此您不应该转义数据,您可以安全地避免sql注入。即使您需要-例如,如果您将值直接注入某个查询中-您也需要一个PDO转义函数,而不是mysql.*
函数。但是要始终如一地使用预处理语句这显然是更好的解决方案,因为你不能因为偶然而忘记任何事情
我能看到的唯一真正的问题是,您将捕获到的异常消息回显给用户。您应该将其记录下来,并向用户显示一条非技术性错误消息
当然,您应该在数据库调用中添加错误处理:空结果不是错误,也不会导致异常,但会导致代码出现问题,因此您应该对此进行检查。这是否真的有效
我明白了:
if($this->password_verify($password,$hashed) == 1){
但是您的类中没有password\u verify()
方法。如果您指的是password\u verify()
函数,则应将其更改为:
if(password_verify($password,$hashed)){
为了回答您的问题,您使用的是预处理语句,因此您不应该转义数据,您可以安全地避免sql注入。即使您需要-例如,如果您将值直接注入某个查询中-您也需要一个PDO转义函数,而不是mysql.*
函数。但是要始终如一地使用预处理语句这显然是更好的解决方案,因为你不能因为偶然而忘记任何事情
我能看到的唯一真正的问题是,您将捕获到的异常消息回显给用户。您应该将其记录下来,并向用户显示一条非技术性错误消息
当然,您应该在数据库调用中添加错误处理:空结果不是错误,也不会导致异常,但会导致代码出现问题,因此您应该对此进行检查。这是否真的有效
我明白了:
if($this->password_verify($password,$hashed) == 1){
但是您的类中没有password\u verify()
方法。如果您指的是password\u verify()
函数,则应将其更改为:
if(password_verify($password,$hashed)){
为了回答您的问题,您使用的是预处理语句,因此您不应该转义数据,您可以安全地避免sql注入。即使您需要-例如,如果您将值直接注入某个查询中-您也需要一个PDO转义函数,而不是mysql.*
函数。但是要始终如一地使用预处理语句这显然是更好的解决方案,因为你不能因为偶然而忘记任何事情
我能看到的唯一真正的问题是,您将捕获到的异常消息回显给用户。您应该将其记录下来,并向用户显示一条非技术性错误消息
当然,您应该在数据库调用中添加错误处理:空结果不是错误,也不会导致异常,但会导致代码出现问题,因此您应该对此进行检查。这是否真的有效
我明白了:
if($this->password_verify($password,$hashed) == 1){
但是您的类中没有password\u verify()
方法。如果您指的是password\u verify()
函数,则应将其更改为:
if(password_verify($password,$hashed)){
为了回答您的问题,您使用的是预处理语句,因此您不应该转义数据,您可以安全地避免sql注入。即使您需要-例如,如果您将值直接注入某个查询中-您也需要一个PDO转义函数,而不是mysql.*
函数。但是要始终如一地使用预处理语句这显然是更好的解决方案,因为你不能因为偶然而忘记任何事情
我能看到的唯一真正的问题是,您将捕获到的异常消息回显给用户。您应该将其记录下来,并向用户显示一条非技术性错误消息
当然,您应该在数据库调用中添加错误处理:空结果不是错误,也不会导致异常,但会导致代码中出现问题,因此您应该对此进行检查。请检查。。它们不再维护,现在是。改为了解,然后使用。@JayBlanchardPDO
我不知道任何事情请举例说明您使用的是什么API?@SimonAndréForsberg这正是它所属的位置。我需要清理我的登录值吗php@Fred-现在我完全同意。在代码审查时,我们经常会问“这个代码有效吗?如何才能做得更好?”问题,而CR更多的是关于“这是有效的。如何才能做得更好?”。知道你的代码是否有效的唯一方法是测试它。请。它们不再被维护,而是被维护。改为了解,然后使用。@JayBlanchardPDO
我对它一无所知,使用prepared语句搜索它将有助于保护。你能举个例子吗?你在使用什么API?@SimonAndréForsberg it's确切地说是它所属的位置。我需要在中清理我的登录值吗php@Fred-ii-现在我完全同意。在代码审查时,我们经常会问“这段代码有效吗?如何改进?”问题,而CR更多的是关于“这段代码有效。如何改进?”。知道你的代码是否有效的唯一方法是测试它。请。它们不再被维护,而是被维护。请改为了解,然后使用。@JayBlanchardPDO
我对此一无所知