在检查敏感数据时,可以使用PHP中的头重定向吗
我最近开始学习一个小网站项目的PHP,也使用MySQL。我相信对于小型网站来说,这是一个非常常见的组合。我正在编写一个简单的授权脚本,从字面上比较用户提交的密码和硬编码的值(随着它变得更加复杂,我将对此进行改进) 我的问题是,在一个安全页面上,用户需要登录才能访问它,检查会话是否存在(我正在使用会话),如果不存在(用户未登录),只需将header()重定向应用到登录页面,这是不安全的吗?可以以任何方式跳过header()重定向吗?如果它是不安全的,那么哪种方法是最好的?请确保在头之后添加在检查敏感数据时,可以使用PHP中的头重定向吗,php,mysql,Php,Mysql,我最近开始学习一个小网站项目的PHP,也使用MySQL。我相信对于小型网站来说,这是一个非常常见的组合。我正在编写一个简单的授权脚本,从字面上比较用户提交的密码和硬编码的值(随着它变得更加复杂,我将对此进行改进) 我的问题是,在一个安全页面上,用户需要登录才能访问它,检查会话是否存在(我正在使用会话),如果不存在(用户未登录),只需将header()重定向应用到登录页面,这是不安全的吗?可以以任何方式跳过header()重定向吗?如果它是不安全的,那么哪种方法是最好的?请确保在头之后添加exit
exit()
,否则实际上不会停止执行header()
仅添加头,随后继续执行
if ($pass != "foobar") {
header("Location: /");
}
// allow logged in user stuff here
。。将导致对未登录用户进行重定向,但只有在脚本完成运行后(并且“允许登录…”下的所有内容都将像用户已登录一样执行)
。。将在标头调用后终止执行,并且不会运行进一步的代码。可以使用布尔会话变量来表示用户已登录,只要应用程序设置它的唯一方法是接收有效密码。但是,随着时间的推移,您可能希望查找当前用户以检查其权限或配置文件,在这种情况下,您可能希望将用户的用户名/ID放在会话中。是的,在数据库中填充user/pass表后,我将阅读有关密码安全和加密的内容:)谢谢!我现在添加了exit():)
if ($pass != "foobar") {
header("Location: /");
exit();
}