我有以下 ajax 调用,它检查用户是否是付费会员,如果是,则相应地运行某些功能。这可行,但我担心安全性。如果有人在控制台强制中更改此 ajax 代码怎么办#button
无需执行任何操作即可成功运行功能。我可以在仍然使用 jQuery ajax 的同时阻止这种情况吗?
$('#button').click(function() {
$.ajax({
url:'checkplan',
type:'POST',
success:function(data){
if(data == 'paid')
//grant access and run some functions
}
})
最终,您的服务器需要始终强制执行正确的身份验证。您不能依赖客户端来执行任何操作,因为它总是可能受到损害(如果不在您的网页中,则在定制的网页中)。因此,当您登录时,您的服务器需要返回某种令牌或设置一个包含某种令牌的 cookie,并且只有具有该令牌或 cookie 的服务器的未来请求才应得到尊重。
您可以使用客户端中的逻辑向用户呈现更好的界面(仅在经过身份验证后显示他们登录的操作,显示适当的登录或注销选项等...),但您不能使用客户实际提供安全保障。
许多 REST API 都有一个返回 sessionID 的登录方法,并且所有其他 API 请求都需要该 sessionID。然后,服务器在每个请求上检查该 sessionID,以查看它是否适用于有效的登录用户,并查看它是否仍然有效(如果不定期使用,sessionID 通常仅在一段时间内有效)。
许多 Web 应用程序使用 cookie,以便将来的所有页面视图和表单提交都能够向服务器显示它们已正确登录并经过身份验证,因为 cookie 中存在适当的 sessionID。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)