使用超全局 $_SESSION 变量验证表单是否安全?

Is it safe to verify a form with the superglobal $_SESSION variable?

我有一个表单,当我提交它时,我会 AJAX 调用我的服务器。 在服务器端,我通过将它们与 superglobale $_SESSION 中的一些变量进行比较来验证信息,如下所示:

HeCanBuyIt = $ajaxData->priceProduct <= $_SESSION["user"]->moneyOfUser;

我不确定这样做是否安全(用户可以在他的会话中更改 "moneyOfUser" 变量吗?)。

我也可以从数据库中读取用户,但它花费了 SELECT 的时间...我知道它不是那么慢,但我更喜欢最快的方法。

$_SESSION 变量中的所有值仅存储在服务器上。客户端仅获得一个会话 ID,该 ID 存储在其浏览器的 cookie 中。用户无法查看或操作他们 $_SESSION 中的值,除非您已将其明确编码到您的程序中。

另请参阅:How do PHP sessions work? (not "how are they used?")