gpt4 book ai didi

javascript - 在 Javascript/Ajax 而不是 PHP 中验证表单的故障安全方法?

转载 作者:行者123 更新时间:2023-11-30 08:01:58 27 4
gpt4 key购买 nike

好的,目前我用 PHP 处理所有 HTML 表单提交。我将表单提交到一个 PHP 文件,该文件:

  • 检查页面加载时创建的 cookie,以防止 CSRF。
  • 包含处理验证的 require_once()。
  • 运行其他逻辑。

如果这些步骤中的任何一个失败,用户将在 PHP 中重定向到他们来自的页面并显示错误消息。

我如何提交表单:

<form method="post" action="filename.php">

这个系统是故障安全的;就像出现任何问题一样,即使禁用了 Javascript,用户也会返回到他们来自的页面。

所以我的问题是;我可以只使用 Ajax(在提交表单时向服务器发出 Ajax 请求)来创建故障安全系统吗?以至于我根本不需要这个 PHP 系统?是否有为此推荐的程序/教程?

到目前为止,我已经避免了这种情况,因为将 PHP 表单处理系统作为潜在黑客的故障保护系统以及 Ajax 的开销,每个表单可能需要几个小时。

澄清一下,我不需要为禁用 Javascript 的用户提供支持。我只是想确保我的系统在那种情况下是故障安全的。我环顾四周,但事实证明很难找到这方面的说明。

最佳答案

大部分的简短回答是:不。

将任何客户端视为可靠或故障安全是不明智的,在验证用户输入时尤其如此。一条经验法则是:永远不要相信用户。

目前,根据描述,您的表单正在提交给验证表单数据的 PHP 脚本。这种方式将成为您的最佳防线,因为您对所处理的数据拥有大量控制权。

听起来您想停止提交表单而不是强制加载另一个页面。您可以使用 AJAX 将用于验证的表单信息传递给您的脚本,但您的 PHP 代码对于验证过程仍然至关重要

基本上,您想让 PHP 验证可靠。接下来,开始添加一些 AJAX 调用,将信息从表单传递到您的 PHP 代码,但如果 AJAX 不可用,请准备好回退到标准表单提交。如果 AJAX 没有问题,您仍然可以提交数据,让 PHP 进行处理,然后返回指示成功或失败的负载。不过请记住,在这种情况下,AJAX 只是用于验证的一些糖分。您不必重新加载页面并再次传输整个文档,这只会让交易变得更加甜蜜。

但请记住:它不可靠,也不是万无一失的。服务器端验证是隧道尽头的曙光。

关于javascript - 在 Javascript/Ajax 而不是 PHP 中验证表单的故障安全方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25756149/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com