我使用会话的用户管理脚本
会话对象$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'的路径,在没有登录状态的情况下"伪造"提交。
感谢您的智慧之言:)来自经验丰富的程序员。
将$loggedInUser
存储在会话中,并在process.php中检查$_SESSION['loggedInUser']->isLoggedIn()
(或者通常确定用户是否登录)。
攻击者可以伪造session_id,但不能伪造其内容。https://www.owasp.org/index.php/Session_fixation