代码之家  ›  专栏  ›  技术社区  ›  Craig Hyatt

使用$\u请求获取数据是否错误?

  •  5
  • Craig Hyatt  · 技术社区  · 6 年前

    所以,我已经编码了一小段时间(2年),我有一个非常主观的问题:

    使用$\u请求获取数据是否错误?

    这主要是通过方式进行认证。

    如果您考虑数据在 $_REQUEST ,它可以来自cookie、表单或查询字符串。现在,我知道大多数人直接从 $_POST $_GET 使用 $_COOKIE 只有当他们期待饼干的时候。

    我的理论是,在现实中,这些数据不应该有任何区别,如果你替换它,也不应该有任何区别。 美元邮报 $GET 具有 $请求 .

    如果您正在对系统中的用户进行身份验证,那么验证详细信息是否包含在 $邮政 $GET 数组?见鬼,他们是否在里面可能不重要 曲奇饼干 要么。他们仍在给您提供登录站点的凭据,您应该检查其正确性,如果正确,请将其登录。

    现在,我确实意识到,如果您试图使用一个通过查询字符串提交数据的登录表单,那么会存在安全问题,但我不认为这与问题有关。此外,如果有人多次登录失败,应该设置适当的限制以避免服务器过载。

    我想谈谈这个问题的看法。

    社区维基是一个很好的方法。


    哦,顺便说一下,如果你还有其他问题的话,这里还有一些关于stackoverflow的问题 $i请求

    Why should I use $_GET and $_POST instead of $_REQUEST? When and why should $_REQUEST be used instead of $_GET / $_POST / $_COOKIE?

    5 回复  |  直到 10 年前
        1
  •  14
  •   Sev    15 年前

    在“良好”编码实践中,您希望 消除歧义 尽可能多。

    由于$\u请求默认包含来自$\u post、$\u get和$\u cookie的数据,因此存储使用$\u请求检索的数据的变量所持有的值将不明确其来自哪个方法。

    如果我们更具体一些,它将有利于代码的可读性,以及对逻辑的理解,并且有助于将来的调试。

    (更不用说每种方法的安全问题了,特别是美元买一个)

        2
  •  3
  •   Jay Querido    15 年前

    我想说,一起避免。我同意SEV的观点,消除歧义非常重要,原因有很多(调试、清晰/自我文档、优雅等),但可能会出现重大的安全问题,这将是我避免歧义的主要原因。

    作为一个简单的例子,当在两个数组中发送同一个键时会发生什么(例如 $_POST['criticalInfo'] $_GET['criticalInfo'] )?与大多数安全问题一样,漏洞也存在于单个实现中,因此无法猜测您的特定风险。事实上,模棱两可往往会造成漏洞。

        3
  •  0
  •   user234882    15 年前

    不要让它在php-ini中按“变量顺序”来决定脚本从何处获取变量。使用$\u get、$\u post等。

        4
  •  0
  •   Daniel Dinu    15 年前

    它也不允许凭证以任何其他方式进入,除了一个POST请求。我不希望GET请求有副作用(比如登录用户)。

        5
  •  0
  •   Dan Esparza    15 年前

    它是 错误的 ?不。

    它不如 $_GET $_POST ?对。使用正确的数组,可以避免由于不知道数组内容的位置而产生的各种问题。 $_REQUEST 来自。