Php 验证问题
我有一个表单,我在客户端验证用户交互,在服务器端验证数据完整性。现在在客户端,当输入错误或为空时,我会显示一个显示错误消息的警报框。现在在服务器端,我应该再次运行相同的检查(例如名字只能是字母表)还是应该执行其他操作?当然。你必须这么做。Javascript验证只与用户体验相关,但任何人都可以在不太了解的情况下将无效数据发送到您的服务器。是的,您应该这样做-如果用户禁用了Java脚本怎么办Php 验证问题,php,validation,Php,Validation,我有一个表单,我在客户端验证用户交互,在服务器端验证数据完整性。现在在客户端,当输入错误或为空时,我会显示一个显示错误消息的警报框。现在在服务器端,我应该再次运行相同的检查(例如名字只能是字母表)还是应该执行其他操作?当然。你必须这么做。Javascript验证只与用户体验相关,但任何人都可以在不太了解的情况下将无效数据发送到您的服务器。是的,您应该这样做-如果用户禁用了Java脚本怎么办 如果要在任何地方忽略验证,则应在客户端忽略它。这是一个典型的表单验证问题 在客户端(浏览器)上,检查表单(
如果要在任何地方忽略验证,则应在客户端忽略它。这是一个典型的表单验证问题
您应该始终从服务器端开始执行验证,然后再执行客户端验证。(反之亦然,只要实现了服务器端验证)
如果名字只包含字母字符对您很重要,那么您应该在服务器端实现该验证。(主题外:您不应该将名称限制为字母字符。)是的,正如您所写的:再次检查,因为可以避免客户端验证。如果输入无效,请执行与客户端验证和输出错误相同的检查
请记住:过滤和验证输入,转义输出。无论客户端有多少验证,也必须在服务器端进行。任何恶意用户都可以通过客户端验证并将数据发送到服务器
一个好的实践是使用Ajax使用服务器端脚本进行客户端验证,除非所检查的数据太重,通常情况下并非如此。是,是,是-当然 如果您有时间,我鼓励您至少实施以下内容:
您应该始终验证服务器端的所有数据 用户端验证是提供更好用户体验的一部分,如PinuSegra所述;它还有助于降低服务器上的资源使用率(因为许多请求验证都是在客户端完成的)。但是,如果用户禁用了javascript或恶意试图篡改您的web应用程序,则它不能替代服务器验证 做这个小实验:导航到一个应用javascript验证的表单,然后:
在这之后,您的数据库中现在有错误的数据。我希望这能澄清问题。您可以尝试的最简单方法是:在浏览器中关闭javascript。好的。所以这里是这样的,我在第1页有一个表单,它将数据发布到第2页。现在,如果输入有错误,我会做一个回音来告诉用户错误。它将自动进入第2页。如何解决此问题?您已经向第2页发送了数据,因此需要第2页再次显示表单,用已提交的数据填充输入,并标记相关错误。通常在第1页和第2页之间,会执行一些PHP脚本(即PHP触发第2页的加载)。因此,在PHP脚本中,如果出现错误,应将用户发送回page1,例如,将参数错误设置为将显示给用户的消息。在第1页中,检查参数是否已设置。例如。这只是一个例子,还有很多其他方法,比如将用户发送回page1,使用用户提供的参数重新显示表单,以及丢失的一个带有错误消息的红色表单。在服务器端,您需要考虑的另一件事是清理数据以防SQL注入攻击。你不想留下像这样巨大的安全漏洞——只是因为它需要更多的努力,特别是当它们很容易处理的时候:-)你说的转义输出是什么意思?这是web应用程序的原则,即使你过滤和验证输入,你仍然应该在输出数据时转义以防止xss攻击。您永远不知道在筛选和验证时可能遗漏了什么。