首页 > 解决方案 > 如何阻止客户端从控制台调用 ajax 函数?

问题描述

我正在做一个项目,出于多种原因,我决定使用 AJAX 执行提交表单,我有这个功能;

我试图delete(someid)从浏览器的控制台调用该函数并且它有效;现在这是一个安全问题;

我怎样才能做到这一点?

以下是说明它的代码片段:

function delete(someid) {
    $.ajax({
        type: 'POST',
        url: 'delete',
        data: {
            id: 'someid'
        }
    });
}

标签: javascriptjqueryajaxsecurity

解决方案


我试图从浏览器的控制台中调用 delete(someid) 函数,而这个工作现在是一个安全问题。

这不是客户端的安全问题。据我所知,没有办法禁止人们使用控制台调用 javascript 以针对您的 API 使用,即使有可能有超过 100 种不同的方法来解决这个问题。

为此,安全问题将来自您的服务器/api 端,您应该在使用服务器端代码进行任何类型的实际删除之前检查请求。

因此,如果任何用户都可以使用任何给定的 id 调用 delete 函数,那么我看到的安全问题“并且该函数将从具有给定 id 的数据库中删除一个人。

这将是服务器端问题。您需要对用户进行某种授权。这是一个非常广泛的话题,可以在一个答案中回答。

通常,您将拥有的流程是用户向您的服务器发出删除请求,服务器将为发送请求的用户提供某种信息(例如 id),然后服务器将检查并查看用户是否具有该 id 能够从数据库中删除用户。


推荐阅读