我想在不重新加载整个页面的情况下验证表单。我目前正在使用 JavaScript,但这非常不安全。为了解决这个问题,我想使用 AJAX 和 PHP 脚本来验证表单。有谁知道这可能存在的任何安全风险?
我还假设 AJAX 方法比 vanilla JS 安全得多,但我可能错了?
最佳答案
它们与使用纯客户端 JavaScript 进行验证的风险完全相同。唯一的区别是,作为流程的一部分,您要求服务器提供一些数据。
无论验证结果如何,用户都可以覆盖 JavaScript 来提交表单。
在检查提交数据时使用 JavaScript 的唯一原因是为了节省用户时间。如果作为其中的一部分,您想要做一些事情,例如在用户填写表单的其余部分时询问服务器是否使用了用户名,那就太好了 — 这是 Ajax 的一个很好的用法。否则,使用 Ajax 就毫无值(value)。
如果你想做客户端检查,那么把你能做的所有逻辑都放在客户端上,避免发出 HTTP 请求。如果您有只能在服务器端检查的东西(因为它们基于数据,例如用户名已经被占用的示例),那么请考虑使用 Ajax。客户端检查是便利检查。 始终对服务器端和最终提交的数据进行安全检查。
请注意,验证使用 Ajax 实际提交的数据是另一回事——因为那是最终提交的数据。它正在进行 Ajax 验证,作为最终提交的前奏,不会增加对数据的任何信任。
关于php - 验证中 AJAX 的安全风险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4333967/