如果在 if 语句中使用,我应该清理 $_POST 数据吗?


Should i sanitize $_POST data if used in if statement?

我正在网站上实现一个简单的封闭区域。输入正确的密码后授予访问权限。密码是共享的,因此没有真实帐户。我试图了解我是否缺少一些变量过滤以及我是否应该清理数据。我很确定我必须这样做,但我不知道什么是最好的方法。

在我的代码中,我有两个地方使用 $_POST 变量中的数据:

if(isset($_POST)&&$_POST['the_password']!="")
{
    $my_password = $_POST['the_password'];
    //Should i use something like this?
    //$my_password = filter_input(INPUT_POST, 'the_password', FILTER_SANITIZE_STRING); 
}

第二个位置是我在 if 语句中使用变量的地方:

if($a_password == $my_password)
{
    //Query using the $a_password variable
}

在代码的这一部分中,$a_password 来自硬编码查询。

filter_input功能是正确的吗?我错过了什么吗?

简短的回答是否定的;对于if语句,你的代码是安全的。

但是,如果稍后编辑代码,则应在数据库查询中使用预准备语句。