如何在 ASP.Net Web Forms 应用程序中从 Jquery 安全地调用用于内部目的的 Web 服务 (.asmx)?

How can I securely call a web service (.asmx) which is used for internal purposes from Jquery in a ASP.Net Web Forms application?

我有一个系统使用 Jquery AJAX 调用 .ASMX 网络服务供内部和无状态使用。 例如,按下按钮后,启动 Jquery 调用以插入新用户)。

现在的问题是,Jquery AJAX 调用是由用户动态插入的。用户可以决定放置什么 Javascript 代码,因此他可以在网络服务中调用 AddUser() 函数,或者做其他事情。然后,动态插入那段代码,按钮会将用户写入的所有 Javascript 添加到 HTML 内容中。

如果用户决定调用Jquery,并专门在WS中添加代码调用AddUser()函数,我该如何安全地调用?我如何确保此 AJAX 请求来自同一域? 我知道每个 HTTP 请求 header 都可以被操纵,那么我如何确保 AJAX 调用来自同一站点? 我提醒你,该 Web 服务的目的是供系统内部使用 - 所以我不希望外部用户阅读 JS 代码并复制它并添加用户,他想要多少就添加多少!

我不想使用令牌或身份证明。这是一个无状态请求,我只想添加一个用户,但要控制谁在打电话。

我很乐意收到任何建议。提前致谢!

在我看来你不能。您可以添加某种身份验证(如果您在站点上有一个,您可以使用相同的身份验证)或在随 AJAX 请求一起发送的页面上呈现令牌。当然,在这两种情况下,您都添加了某种形式的状态,但在我看来,从同一站点发起请求的要求是跟踪状态的要求。