好的,所以目前我可以用PHP处理所有HTML表单提交。我将表单提交到一个PHP文件中:
如果这些步骤中的任何一个失败,则将用户使用PHP重定向到错误消息所在的页面。
我如何提交表格:
<form method="post" action="filename.php">
该系统是故障安全的;仿佛出现任何问题,即使禁用了Javascript,用户也将返回到其来源页面。
所以我的问题是;如何仅使用Ajax(表单提交时向服务器的Ajax请求)创建故障安全系统?这样我根本不需要这个PHP系统?有推荐的程序/教程吗?
到目前为止,我避免了这种情况,因为将PHP表单处理系统作为潜在黑客的自动防故障程序以及Ajax的开销每个表单都需要花费几个小时。
只是为了澄清,我不需要支持已禁用Javascript的用户。我只想确保我的系统在这种情况下是否为故障安全。我环顾四周,但事实证明很难对此做出澄清。
最佳答案
大多数情况下,简短的答案是:不。
将任何客户端视为可靠或故障安全都是不明智的,在验证用户输入时尤其如此。经验法则是:从不信任用户。
当前,根据描述,您的表单正在提交到验证表单数据的PHP脚本。这种方式将是您的最佳防御方法,因为您可以对正在使用的数据进行大量控制。
听起来您想剪切表单提交而不要强制另一个页面加载。您可以使用AJAX将表单信息传递给脚本进行验证,但是您的PHP代码对于验证过程仍然至关重要。
基本上,您想使您的PHP验证可靠。接下来,开始添加一些AJAX调用,这些调用将信息从表单传递到您的PHP代码,但是准备好在AJAX不可用时退回标准表单提交。如果AJAX没有问题,您仍然可以提交数据,让PHP进行处理,然后返回指示成功或失败的有效负载。但是请记住,在这种情况下,AJAX只是验证的一部分。您只是在节省交易费用,而不必重新加载页面并再次传输整个文档。
但是请记住:它不可靠,也不是故障安全的。服务器端验证是隧道尽头的曙光。