8

当然,我知道服务器端验证是必须因此,仅在客户端验证表单是否安全?

我使用jQuery来验证表单输入并使用jQuery ajax同时进行服务器端(PHP)验证。所以我想这可能是安全的,因为它是验证双方而javascript已启用

嗯,这里是我的问题...

但是,如果用户有禁用JavaScript在他的浏览器,如果有些坏人试图做坏事,从编辑我的客户端脚本?

因为我通过jquery ajax进行服务器端验证,并且我打算不在php脚本中直接验证它们(action =“some.php”),即使用户的javascript已启用。

那么......它仍然安全吗?

对不起,我的英语不好,希望你不介意。

+1

可能重复关闭:http://stackoverflow.com/questions/3483514/why-is-client-side-validation-not-enough/ – RTB

+2

哇,有些事情我认为哪里明显。难怪人们经常被黑客入侵。只是该死。 – rook

回答

13

不,它不安全。您应该始终在服务器端验证您的数据,之后表单已提交。提交表单之前的客户端验证和AJAX验证仅通过提供有关无效数据的更快反馈来增强用户体验。客户端验证和AJAX预先提交验证都不会,也无法保护您免受恶意制作的表单提交。攻击者和滥用者通常甚至不使用浏览器来向服务器提交数据。

+0

您的回答很有帮助!谢谢... –

5

我的规则非常简单...

  1. 如果你关心你的数据,那么你必须验证服务器上。
  2. 如果您关心您的用户体验,那么您必须在 上验证客户端。
+0

最佳答案!,简短而准确。 –

6

由于javascript对于任何访问者都是可读的,并且可以用最新的浏览器轻松编辑,所以任何具有一定编程技能的人都可以立即跳过您的JavaScript验证。所以你总是应该在服务器端进行验证。