【发布时间】:2018-03-27 21:21:12
【问题描述】:
那么在验证密码输入时使用$code 更好还是我只需要使用$_POST['code']?
在安全性方面究竟应该在什么时候使用secure_input 函数?
有没有更好的方法来执行以下密码验证?
更多关于php表单安全here
<?php
function secure_input($data) {
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
$code = secure_input($_POST['code']);
if($code == "ok") echo 'success';
?>
<form method="post" action="">
Name: <input type="text" name="code">
<input type="submit">
</form>
【问题讨论】:
-
定义“安全”以及它的用途。
-
根据类型和“输入”的使用,
secure_input函数可能会破坏它 -
您建议对密码执行此操作的事实尖叫“我使用的是纯文本密码,也没有使用准备好的语句”。 php.net/manual/en/function.password-hash.php, php.net/manual/en/pdo.prepare.php, php.net/manual/en/mysqli.prepare.php
-
没有密码验证。除非你想确保它必须包含一个特定的角色,在我自己看来这是错误的,因为你正在为攻击创造一个重生点
-
您可以获取密码的哈希值,并比较哈希值。请参阅 password_hash 和 password_verify。
标签: php forms security post htmlspecialchars