想象一下,在HTML文件中,我有一个禁用按钮。我不妨使用Firebug来启用此按钮,提交也是如此。
我的问题是:是否有任何方法我禁用此按钮并且即使我在Firebug中修改按钮的禁用属性也不允许此提交?
我是否应该始终在服务器端处理此问题,并认为可能会发生这种情况?
答案 0 :(得分:0)
是的,您应始终验证服务器端。客户端验证只是为了便于客户进行更正并提供与他的交互,从而阻止他提交所有数据,然后才发现正确的格式或缺少字段,然后被迫重新填充所有字段。
表单可能很容易合并到另一个网站,然后表单的操作指向您的网站或用户在表单中注入一些恶意代码/数据。 (见:Wikipedia XSS)
任何恶意用户都可以通过制作Firebug轻松绕过禁用的HTML按钮来激活它,或者更糟糕的是,即使你可以阻止它,他也可以简单地创建一个HTML页面并指向表单动作中的目标URL,甚至没有创建一个页面,发出一个AJAX请求。他甚至可以使用带有cURL(或套接字)库或任何其他编程语言的PHP开发一个工具。 NET使用WebClient / WebRequest或带有HttpURLConnection的Java,在这两种情况下都是浏览器请求页面或向另一个页面发送数据的行为......(此任务可以在5分钟内由任何初级开发人员完成)
您永远不应该依赖用户,不应该将客户端验证视为安全流程的一部分,因为从客户端来看,来自那里的任何信息都可以轻松操作,如上所示。