Javascript 如何阻止客户端从控制台调用ajax函数?
我正在做一个项目,出于多种原因,我决定用AJAX执行提交表单,我有这个功能 我试着从我的浏览器控制台调用Javascript 如何阻止客户端从控制台调用ajax函数?,javascript,jquery,ajax,security,Javascript,Jquery,Ajax,Security,我正在做一个项目,出于多种原因,我决定用AJAX执行提交表单,我有这个功能 我试着从我的浏览器控制台调用delete(someid)函数,它成功了;这现在是一个安全问题 我怎样才能做到这一点 下面是一段代码片段,对其进行了说明: function delete(someid) { $.ajax({ type: 'POST', url: 'delete', data: { id: 'someid' }
delete(someid)
函数,它成功了;这现在是一个安全问题
我怎样才能做到这一点
下面是一段代码片段,对其进行了说明:
function delete(someid) {
$.ajax({
type: 'POST',
url: 'delete',
data: {
id: 'someid'
}
});
}
我试着在浏览器的控制台上调用delete(someid)函数,现在这是一个安全问题
这不是客户端的安全问题。据我所知,没有办法禁止人们使用控制台调用javascript来对抗您的API,即使有可能,也会有100多种不同的方法来解决这个问题
为此,安全问题将来自服务器/api端,在使用服务器端代码执行任何类型的实际删除之前,您应该检查请求
因此,我看到的安全问题是,如果任何用户可以使用任何给定id调用delete函数,那么该函数将使用给定id从数据库中删除一个人
这将是一个服务器端问题。您需要对用户进行某种授权。这是一个非常广泛的主题,可以在单个答案中回答
通常情况下,用户向服务器发出删除请求时,服务器会为发送请求的用户提供某种信息(如id),然后服务器将检查并查看具有该id的用户是否能够从数据库中删除用户。不要依赖HTML表单为API提供安全性。即使您可以阻止用户使用浏览器的开发人员控制台,他们也可以使用PostMan或curl或任何其他HTTP客户端。如果您公开API(任何API,包括通过常规表单帖子而不是Ajax请求),您应该始终假设熟练的用户可以随时调用这些API。在服务器而不是客户端中建立适当的安全检查。在您自己的代码中调用的
delete
在哪里,您能显示您在哪里使用它吗?”这是有效的,现在是一个安全问题”。为什么这是一个安全问题?服务器接收它的方式与从用户界面触发的方式相同,或者是从浏览器外部触发的方式相同(例如,使用类似邮递员或某些C#代码或其他方式)。无论请求是如何发生的,服务器都需要验证请求是否可接受,然后才能决定执行请求的操作。您不能依靠客户端提供安全性,因为在HTTP世界中,任何客户端都可以被另一个不实现安全性的客户端替换。嗨,伙计们..因此urity问题,我看到任何用户是否可以使用任何给定id调用delete函数,并且该函数将使用给定id从数据库中删除一个人"@Ryadlaglagus是的。那么您需要对用户设置哪些限制?需要执行哪些检查以确保当前登录的用户可以从数据库中删除指定的人?只需将该逻辑从客户端移动或复制到服务器。非常感谢,先生,这是解决方案..在服务器端检查权限