PHP - 服务器端验证 - 这是一个好方法吗?

时间:2010-08-06 20:20:25

标签: php jquery security

我通过jQuery的帮助完成了广泛的客户端验证。现在来到服务器端验证,如果我发现某些字段无效,我可以简单地向客户端返回错误而没有任何有用的消息吗?

我的假设是用户必须启用JavaScript才能访问我的网页。如果Web浏览器禁用了JavaScript,则用户将看不到该表单。我可以简单地使用noscript来做到这一点。如果他们通过我设计的表单提交信息,则不应向服务器提交无效字段。因此,如果我在服务器端发现任何无效字段,那么我的表单会被一些黑客而不是一些普通用户破坏。

我的理解对你有意义吗?

<基于来自许多专家的评论,附加以下消息> 对不起,我在这里没有明确提到我的问题。我总是做服务器端验证b / c我不应该相信任何用户输入。

但是,我的观点是,我是否应该将服务器端错误消息传递给用户。因为,如果用户使用我的表单并将表单提交给服务器PHP,则永远不应该存在无效字段。如果发生这种情况,那么我认为一些黑客正在玩我的PHP。所以我想忽略它们。

我尽量避免将服务器端错误消息传回客户端的主要原因是我没有找到更好的解决方案。我在这里发布了几个相关的问题,没有很好的建议或例子。

< ---结束---->

谢谢

6 个答案:

答案 0 :(得分:2)

您应始终始终进行服务器端验证。

我建议你看一下:

客户端验证总是一个好主意,你应该去但是服务器端验证应该是必须和良好的编码实践

答案 1 :(得分:1)

客户端验证仅适用于实际使用您网站的用户。垃圾邮件机器人等可以轻松省略它,因此应始终在服务器站点进行验证。发生验证错误时,应将消息发送回用户,以便通知错误。

绝不仅使用客户端验证。它可能只是一个额外的。

答案 2 :(得分:1)

每个Web应用程序都必须具有服务器验证功能,因为发送伪标头非常容易。例如,你javascript不允许在表单中输入字母,但我可以简单地发送包含字母,数字等的假标题。

答案 3 :(得分:1)

在您的情况下,听起来您可以相当确定有效用户不会遇到PHP验证错误。因此,您可以使用slacker错误消息进行响应。你真的应该给出一些错误的指示。如果你不这样做,有一天当javascript由于某种原因失败时你会后悔(比如你改了它并且测试不够好)。

答案 4 :(得分:1)

验证客户端上的任何内容只对帮助您的用户发现错误非常有用,例如“哦,您没有给我们一个姓氏,请填写”。像我这样的人可以简单地向您的服务器发送任何我想要的任何请求,能够处理它,或者准备好处理潜在损坏的数据库以及您的客户在爱沙尼亚附近的CreditCard号码的CD-ROM

让服务器回复表单取决于你的代码结构 - 例如,如果它是ajax或其他什么。但报告问题总是很好。

答案 5 :(得分:0)

我总是发回有用的错误消息。您可能需要一种方法让服务器报告其他错误情况(数据库错误等)。