我刚刚学会了可以从一些浏览器附带的开发工具中操作网站的前端代码。现在,我的问题是,如果有人能够根据适当的需求操作我的js、HTML和CSS代码,并能够向我的Web服务器发送请求,服务器是否会将该请求作为经过身份验证的请求进行接收和处理。让我举一个合适的例子:
比方说,我创建了一个使用ajax从Web服务器检索一些信息的表单,在该表单中,我有一个隐藏的输入,其中包含决定将要显示的信息的数字(例如,1应该为1级用户显示信息,2应该为2级用户显示信息(。隐藏输入的默认值是1,现在,如果用户(级别1(能够在发送之前调整前端代码并将值设置为2,他会收到级别2的信息吗。
如果这是可能的,我如何防止这种事情发生,或者处理这种情况的标准程序是什么?
这种情况下的典型规则是:
- 验证
- 验证
- 验证
不要只信任客户端来告诉你他们是否有权限。您应该有信息来确定在服务器端使用它。验证客户端请求,并确保请求操作的用户实际上具有执行操作的权限,并且他们发送的数据是有效的。当然,您可以通过客户端验证来获得良好的用户体验,但始终要通过服务器端验证、身份验证和授权来支持它。
防止您的示例场景的最佳方法是:不要发送他们不应该看到的客户端数据,然后依靠客户端来隐藏它。如果用户不应该看到它,就不要发送。