javascript - 如何阻止客户端从控制台调用 ajax 函数?
问题描述
我正在做一个项目,出于多种原因,我决定使用 AJAX 执行提交表单,我有这个功能;
我试图delete(someid)
从浏览器的控制台调用该函数并且它有效;现在这是一个安全问题;
我怎样才能做到这一点?
以下是说明它的代码片段:
function delete(someid) {
$.ajax({
type: 'POST',
url: 'delete',
data: {
id: 'someid'
}
});
}
解决方案
我试图从浏览器的控制台中调用 delete(someid) 函数,而这个工作现在是一个安全问题。
这不是客户端的安全问题。据我所知,没有办法禁止人们使用控制台调用 javascript 以针对您的 API 使用,即使有可能有超过 100 种不同的方法来解决这个问题。
为此,安全问题将来自您的服务器/api 端,您应该在使用服务器端代码进行任何类型的实际删除之前检查请求。
因此,如果任何用户都可以使用任何给定的 id 调用 delete 函数,那么我看到的安全问题“并且该函数将从具有给定 id 的数据库中删除一个人。
这将是服务器端问题。您需要对用户进行某种授权。这是一个非常广泛的话题,可以在一个答案中回答。
通常,您将拥有的流程是用户向您的服务器发出删除请求,服务器将为发送请求的用户提供某种信息(例如 id),然后服务器将检查并查看用户是否具有该 id 能够从数据库中删除用户。