我使用带有会话的用户管理脚本
会话对象$ loggedInUser包含以下属性:
$loggedInUser->email
$loggedInUser->user_id
$loggedInUser->hash_pw
$loggedInUser->clean_username
用户可以通过POST从'form.php'数据提交 处理脚本'process.php '
'form.php'可以访问前面提到的Session对象。 这是Cookie,目前通过发送表单提交:
PHPSESSID=7ec81164c9fb2cdc4c6f47a00bc2ae50
问题:
如何保护'process.php'以保存仅允许登录用户提交数据?
*据我所知,'process.php'只能由我的服务器而不是用户访问,因此我必须通过Cookie,Get或Post提交会话对象一切都容易被篡改,是吗?*
如果合适,您会使用提交的Cookie或检查验证吗?
ATM很容易,知道'process.php'的路径,“伪造”没有登录状态的提交。
感谢有经验的程序员提供的一些智慧:)。
答案 0 :(得分:2)
在会话中存储$loggedInUser
并在process.php中检查$_SESSION['loggedInUser']->isLoggedIn()
(或者您通常确定用户是否已登录)。
攻击者可以欺骗session_id,但不能欺骗其内容。 https://www.owasp.org/index.php/Session_fixation