Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从ASP.NETWebForms应用程序中的AJAX安全地调用用于内部目的的web服务(.asmx)?_Javascript_Asp.net_Ajax_Web Services_Stateless - Fatal编程技术网

Javascript 如何从ASP.NETWebForms应用程序中的AJAX安全地调用用于内部目的的web服务(.asmx)?

Javascript 如何从ASP.NETWebForms应用程序中的AJAX安全地调用用于内部目的的web服务(.asmx)?,javascript,asp.net,ajax,web-services,stateless,Javascript,Asp.net,Ajax,Web Services,Stateless,在这种情况下,您将如何行动 我有一个网站,它使用Ajax调用执行内部和无状态操作,类似于asmx文件中的PageMethods或WebMethods,它们是网站的一部分,不依赖于任何用户状态。也没有身份验证 该函数对于站点的内部使用至关重要,但由于它是无状态的,并且是用Javascript编写的,因此任何人只要查看页面的源代码,就可以看到并使用它 我的问题是:我如何在不使用任何状态的情况下确保此操作的安全?此外,我不能拒绝\阻止对Web.Config中外部用户/域的任何访问,因为我在同一站点上有

在这种情况下,您将如何行动

我有一个网站,它使用Ajax调用执行内部和无状态操作,类似于asmx文件中的PageMethods或WebMethods,它们是网站的一部分,不依赖于任何用户状态。也没有身份验证

该函数对于站点的内部使用至关重要,但由于它是无状态的,并且是用Javascript编写的,因此任何人只要查看页面的源代码,就可以看到并使用它

我的问题是:我如何在不使用任何状态的情况下确保此操作的安全?此外,我不能拒绝\阻止对Web.Config中外部用户/域的任何访问,因为我在同一站点上有其他使用令牌的Web服务

请帮助我了解网站如何允许使用AJAX将数据插入\更新到其数据库中,而不让全世界使用这些功能


提前感谢您

在这种没有任何安全措施的情况下,您认为安全是什么意思?我的意思是,我希望使用AJAX作为我的站点的补充内部功能,如服务器端功能,但由于UI限制,我必须使用AJAX调用来执行某些功能。但是我希望这种行为是透明的,不可见的,不可接触的外部使用。我认为这是不可能的。若你们坚持使用无状态,那个么唯一的最低限度的方法就是清理你们在webmethod中收到的输入。还有一种方法是将CSRF令牌传递给page,并将其用作webmethod的输入标准之一。我理解您的答案,在阅读了大量文章和帖子后,我倾向于同意您的看法。但我知道有些网站的内部功能使用AJAX,而不使用statefull调用,例如,当您注册到一个网站时,或者当您进入一个页面并想要增加一个视图计数器时。这些是AJAX中用于从客户端更改数据库的无状态操作。将CSRF令牌传递给page,并将其用作webmethod的输入条件之一。另外,将一些到期日设置为该令牌的优化值。