Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在检查敏感数据时,可以使用PHP中的头重定向吗_Php_Mysql - Fatal编程技术网

在检查敏感数据时,可以使用PHP中的头重定向吗

在检查敏感数据时,可以使用PHP中的头重定向吗,php,mysql,Php,Mysql,我最近开始学习一个小网站项目的PHP,也使用MySQL。我相信对于小型网站来说,这是一个非常常见的组合。我正在编写一个简单的授权脚本,从字面上比较用户提交的密码和硬编码的值(随着它变得更加复杂,我将对此进行改进) 我的问题是,在一个安全页面上,用户需要登录才能访问它,检查会话是否存在(我正在使用会话),如果不存在(用户未登录),只需将header()重定向应用到登录页面,这是不安全的吗?可以以任何方式跳过header()重定向吗?如果它是不安全的,那么哪种方法是最好的?请确保在头之后添加exit

我最近开始学习一个小网站项目的PHP,也使用MySQL。我相信对于小型网站来说,这是一个非常常见的组合。我正在编写一个简单的授权脚本,从字面上比较用户提交的密码和硬编码的值(随着它变得更加复杂,我将对此进行改进)

我的问题是,在一个安全页面上,用户需要登录才能访问它,检查会话是否存在(我正在使用会话),如果不存在(用户未登录),只需将header()重定向应用到登录页面,这是不安全的吗?可以以任何方式跳过header()重定向吗?如果它是不安全的,那么哪种方法是最好的?

请确保在头之后添加
exit()
,否则实际上不会停止执行
header()
仅添加头,随后继续执行

if ($pass != "foobar") {
    header("Location: /");
}

// allow logged in user stuff here
。。将导致对未登录用户进行重定向,但只有在脚本完成运行后(并且“允许登录…”下的所有内容都将像用户已登录一样执行)


。。将在标头调用后终止执行,并且不会运行进一步的代码。

可以使用布尔会话变量来表示用户已登录,只要应用程序设置它的唯一方法是接收有效密码。但是,随着时间的推移,您可能希望查找当前用户以检查其权限或配置文件,在这种情况下,您可能希望将用户的用户名/ID放在会话中。是的,在数据库中填充user/pass表后,我将阅读有关密码安全和加密的内容:)谢谢!我现在添加了exit():)
if ($pass != "foobar") {
    header("Location: /");
    exit();
}