在使用jquery ajax
时,我做了很多奇怪的事情。我的意思是,我保留一个包含id
的隐藏变量,然后当有人点击button
时,我运行一个javascript函数,它传递ajax请求以及id
中包含的hidden field
}}。这是正常的吗?如果有人使用firebug
或任何此类工具并更改javascript
功能并传递其他ids
该怎么办?它会更新和删除可能不属于该用户的其他记录吗?你们怎么处理这个?
答案 0 :(得分:14)
您需要来保护此服务器端,您无法在客户端保护它,也不应该。
JavaScript是可查看的,可执行的,动态的,开放的......这就是你在做什么时所需要的......好吧,你想要什么,这对安全来说是一件非常糟糕的事情。在处理请求时,您需要检查用户在服务器上应该访问的内容的传递ID。
任何事情,我的意思是你在客户端上做的任何事情都是威慑,而不是解决方案,实际上没有有效的JavaScript我见过的威慑力量。即使您可以保护它,我也可以打开Firebug,Fiddler,Wireshark,Chrome控制台或其他十几种工具中的一种来查看请求最终发送的内容。
答案 1 :(得分:6)
永远不要相信用户的输入:验证服务器上的ID。
答案 2 :(得分:2)
提交数据时,您应始终检查服务器端的输入。例如,如果用户在网站上编辑他们的个人资料,则不会将个人资料ID放在隐藏变量中,您可以在提交数据时根据用户cookie /会话获取个人资料ID。关键词绝对不会信任客户。
答案 3 :(得分:1)
您必须执行服务器端验证,以确保当前用户有权根据当前用户和上下文执行操作。如您所知,任何拥有有效凭据的人都可以修改传回的值 - 他们甚至无需修改您的代码,只要他们拥有正确的cookie信息,他们就可以简单地制作包含他们想要的任何值的请求。 / p>