【问题标题】:Is it safe to verify a form with the superglobal $_SESSION variable?使用超全局 $_SESSION 变量验证表单是否安全?
【发布时间】:2016-07-26 01:51:37
【问题描述】:

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

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

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

我也可以从数据库中读取用户,但它会花费 SELECT 的时间...我知道它并没有那么慢,但我更喜欢最快的方式。

【问题讨论】:

    标签: php ajax session web session-variables


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢。我担心一些黑客可以访问该变量,但根据您的说法,他们似乎无法访问:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多