Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.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
Web services 阻止任何人执行您的web服务?_Web Services - Fatal编程技术网

Web services 阻止任何人执行您的web服务?

Web services 阻止任何人执行您的web服务?,web-services,Web Services,我有一个通过javascript(jquery)执行的Web服务,用于从数据库检索数据。我希望确保只有我的网页可以执行这些web方法(即我不希望人们直接执行这些web方法-他们可以通过查看javascript的源代码来找到url)。 我计划做的是在所有webmethods中添加一个“Key”参数。密钥将存储在网页中的一个隐藏字段中,该值将在请求网页时由web服务器动态设置。键值仅在(比如)5分钟内有效。这样,当需要执行webmethod时,javascript会将密钥传递给webmethod,w

我有一个通过javascript(jquery)执行的Web服务,用于从数据库检索数据。我希望确保只有我的网页可以执行这些web方法(即我不希望人们直接执行这些web方法-他们可以通过查看javascript的源代码来找到url)。
我计划做的是在所有webmethods中添加一个“Key”参数。密钥将存储在网页中的一个隐藏字段中,该值将在请求网页时由web服务器动态设置。键值仅在(比如)5分钟内有效。这样,当需要执行webmethod时,javascript会将密钥传递给webmethod,webmethod会在执行任何需要执行的操作之前检查密钥是否有效。
如果有人想直接执行webmethods,他们将没有使他们无法执行的密钥。
你对此有何看法??有更好的解决办法吗?你觉得我的解决方案有什么问题吗

更多信息:对于我正在做的事情,访问者没有登录,因此我无法使用会话。我知道,如果有人真的想打破这一点,他们可以解析html代码并获得隐藏字段的值,但他们必须定期这样做,因为密钥将每x分钟更改一次。。。这当然是可能的,但希望对他们来说是一种痛苦

编辑:我正在做的是一个web应用程序(与web站点相反)。通过web方法(+jquery)检索数据。我想阻止任何人使用我的数据构建自己的web应用程序(如果他们可以执行web方法,他们可以这样做)。显然,这对他们来说是一个风险,因为我可以随时更改web方法

我可能会选择推荐人。它并不完美,但很容易实现。我不想在这上面花太多时间,正如你们中的一些人所说,如果有人真的想打破它,他们无论如何都会找到解决办法

谢谢。

好吧,它在技术上没有什么问题,但是你的假设“他们没有使他们无法执行的密钥”是不正确的,因此整个系统的安全性是有缺陷的

检索隐藏字段的值并使用它来执行该方法非常简单

我将为您节省大量时间和挫折感:如果用户的浏览器可以执行该方法,那么坚定的用户就可以。你是无法阻止的

话虽如此,关于你为什么要这么做的更多信息吗?背景是什么?如果我们知道得更多,也许还有其他东西可以实现您的目标:)

编辑:没有太多的信息,但我会用它运行。您的解决方案根本不会提高安全性,而且会在维护和bug方面给您带来麻烦。这也会让你的用户头疼,因为他们会有一个“看不见的”时间限制来执行页面上的操作。根据你到目前为止告诉我们的,我认为你最好什么都不做

你想在这里保护什么样的方法?你为什么要保护他们

ND

好吧,它没有技术上的问题,但是你的假设“他们不会拥有使他们无法执行的密钥”是不正确的,因此整个事情的安全性是有缺陷的

检索隐藏字段的值并使用它来执行该方法非常简单

我将为您节省大量时间和挫折感:如果用户的浏览器可以执行该方法,那么坚定的用户就可以。你是无法阻止的

话虽如此,关于你为什么要这么做的更多信息吗?背景是什么?如果我们知道得更多,也许还有其他东西可以实现您的目标:)

编辑:没有太多的信息,但我会用它运行。您的解决方案根本不会提高安全性,而且会在维护和bug方面给您带来麻烦。这也会让你的用户头疼,因为他们会有一个“看不见的”时间限制来执行页面上的操作。根据你到目前为止告诉我们的,我认为你最好什么都不做

你想在这里保护什么样的方法?你为什么要保护他们


ND

如何阻止某人请求网页,解析结果以取出密钥,然后用该密钥调用Web服务

你可以检查推荐人的标题来检查电话是否来自你的某个页面,但这也很容易被欺骗

解决这个问题的唯一方法是要求身份验证。如果调用Web服务的网页要求用户登录,则可以在用户调用Web服务时检查用户是否已登录。这不会阻止其他页面使用您的Web服务,但它确实可以让您更多地跟踪使用情况,并且在一定的速率限制下,您应该能够防止滥用您的服务


如果你真的不想冒你的Web服务被滥用的风险,那么就不要公开它。这是唯一的故障保护解决方案。

如何阻止有人请求网页,解析结果以取出密钥,然后用该密钥调用Web服务

你可以检查推荐人的标题来检查电话是否来自你的某个页面,但这也很容易被欺骗

解决这个问题的唯一方法是要求身份验证。如果调用Web服务的网页要求用户登录,则可以在用户调用Web服务时检查用户是否已登录。这不会阻止其他页面使用您的Web服务,但它确实可以让您更多地跟踪使用情况,并且在一定的速率限制下,您应该能够防止滥用您的服务

如果你真的不想冒被滥用Web服务的风险