如果用户查看我的JavaScript文件,复制函数的内容并使用AJAX向我的服务器发送请求,会发生什么?有没有办法正确防止这种情况发生?
答案 0 :(得分:15)
对此进行保护的方式与您保护任何 Web请求的方式没有什么不同。您这样做是为了使您的站点需要某种形式的身份验证(即用户必须登录),并且如果请求未经过适当的身份验证,则不会执行任何操作。
通常,当您发出AJAX请求时,Cookie也会随请求一起发送,因此您应该能够使用与您的常规请求相同的身份验证方法和您的AJAX请求。
答案 1 :(得分:9)
根据codeka,没有办法阻止某人制作他们自己的Ajax查询,该查询与您在Javascript请求中的查询相同。跨域保护不一定会保护您,因为如果他们愿意,只需在您网站的页面上为自己键入Javascript即可。
您唯一的保护是验证通过服务器端的Ajax查询提供的输入和参数。将每个PHP或Python或任何响应脚本限制为一个非常特定的任务,并检查服务器端的输入。如果出现问题,请回复错误。
简而言之,无法阻止某人发送请求,但您可以阻止他们执行您不希望他们在您的服务器上执行的操作。
答案 2 :(得分:0)
假设您需要某种形式的身份验证:
我想您可以维护数据库会话以验证请求是否来自伪造的真实用户。使用加密的cookie存储会话ID,并将cookie会话ID引用到数据库以验证用户