Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.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
Django 如何检测对服务器的请求是否来自可靠的服务?(德扬戈语)_Django - Fatal编程技术网

Django 如何检测对服务器的请求是否来自可靠的服务?(德扬戈语)

Django 如何检测对服务器的请求是否来自可靠的服务?(德扬戈语),django,Django,我有一个第三方服务,我已经配置了一个webhook,可以触发在我的url地址上发布数据。现在,我想限制传入的请求只允许用于此服务。在Django我怎么做?采取一些安全措施有什么诀窍吗 如果您能提供一些代码片段,我将非常高兴 已编辑 我不能指望请求者的ip地址,它可以随时改变。我想我应该使用域名 编辑2 我有一个名为HTTP_X_REAL_IP的头,其中包含服务的IP地址。我可以通过比较套接字ip地址和正确接收的标头来使用该标头吗?不,您不能使用域名,因为在处理请求时您没有域名(请注意,通常大多数

我有一个第三方服务,我已经配置了一个webhook,可以触发在我的url地址上发布数据。现在,我想限制传入的请求只允许用于此服务。在Django我怎么做?采取一些安全措施有什么诀窍吗

如果您能提供一些代码片段,我将非常高兴

已编辑
我不能指望请求者的ip地址,它可以随时改变。我想我应该使用域名

编辑2

我有一个名为HTTP_X_REAL_IP的头,其中包含服务的IP地址。我可以通过比较套接字ip地址和正确接收的标头来使用该标头吗?

不,您不能使用域名,因为在处理请求时您没有域名(请注意,通常大多数请求者-internet用户-没有域名,他们只有ip地址)


最简单的解决方案是将身份验证密钥作为所需参数添加到API中。然后,您只处理那些提供有效身份验证密钥的API调用

不,您不能使用域名,因为您在处理请求时没有域名(请注意,通常大多数请求者-互联网用户-没有域名,他们只有IP地址)


最简单的解决方案是将身份验证密钥作为所需参数添加到API中。然后,您只处理那些提供有效身份验证密钥的API调用

他们似乎没有任何设置来轻松进行测试,您也没有确切说明您使用此API做了什么,但您似乎可以查询他们的API以获取有关一系列事情的信息

我要做的是将他们发送给您的信息以查询的形式发送回去,看看他们现在拥有的信息是否与他们告诉您他们所做的更改相匹配。如果他们匹配,这是真实的。如果它们不匹配,则丢弃它


这大概是我能告诉你的最好的方法了。

他们似乎没有任何设置来轻松地进行测试,而且你也没有确切地说明你正在使用这个API做什么,但似乎你可以查询他们的API,以获取有关一系列事情的信息

我要做的是将他们发送给您的信息以查询的形式发送回去,看看他们现在拥有的信息是否与他们告诉您他们所做的更改相匹配。如果他们匹配,这是真实的。如果它们不匹配,则丢弃它



这差不多是我能告诉你做的最好的了。

这要看情况而定。例如,你知道请求者的IP地址吗?WillemVanOnsem,我已经编辑了这个主题,我认为最好使用域名。。。可能是SSL证书什么API提供了web钩子?通常有一种文档化的方法来验证消息是否来自他们。@DanielRoseman是的,我已经搜索了关于该主题的文档,但没有关于该主题的必要信息。访问webhook的API是否有任何措施来验证消息来自他们?现在这是相当标准的。通常,这是以某种令牌的形式出现的,甚至是以发送到已知API的整个消息的形式出现的,它会以一个信号来响应,告诉您它实际上是来自它们的。这取决于它们。例如,你知道请求者的IP地址吗?WillemVanOnsem,我已经编辑了这个主题,我认为最好使用域名。。。可能是SSL证书什么API提供了web钩子?通常有一种文档化的方法来验证消息是否来自他们。@DanielRoseman是的,我已经搜索了关于该主题的文档,但没有关于该主题的必要信息。访问webhook的API是否有任何措施来验证消息来自他们?现在这是相当标准的。通常,这是以某种令牌的形式出现的,甚至是以发送到已知API的整个消息的形式出现的,它会以一个信号响应,告诉您它实际上是来自它们的。我已经描述过,我不希望普通用户访问此端点。我有一个第三方服务,在我的url上发布数据,我正在服务器端处理数据。我想限制其他人发布数据。我理解,我的回答对您的情况有效。在您的API中添加一个必需的参数,例如key=mysecretpassword,而您的API中没有TrustedServiceKnowledges,其他人将无法使用itokey。我明白了,对不起。但是这个第三方服务无法配置为在我这边进行身份验证。。。它只需要输入一个webhook url,然后在我这边发布数据。如果发生了特定事件,也许你可以先请求他们的支持。如果他们使用相同的IP,您的域名检查解决方案(使用socket.gethostbyname(x)的最简单解决方案)可能会起作用,但这并不能保证,特别是如果他们有更大的带有负载平衡器的基础设施,etcI将询问他们的支持,因为还没有找到好的答案。。。我想问你,你对用特定的标题制作请求有什么看法?这意味着我不能信任发布具有特定标题集的数据的人。我已经描述过,我不希望普通用户访问此端点。我有一个第三方服务,在我的url上发布数据,我正在服务器端处理数据。我想限制其他人发布数据。我理解,我的回答对您的情况有效。在您的API中添加一个必需的参数,例如key=mysecretpassword,而您的API中没有TrustedServiceKnowledges,其他人将无法使用itokey。我明白了,对不起。但是这个第三方服务无法配置为在我这边进行身份验证。。。它只需要输入一个webhook url,然后在我这边发布数据。如果发生了特定事件,也许你可以先请求他们的支持。如果它们使用相同的IP,则检查域名的解决方案(使用socket.gethostbyname(x)的最简单解决方案)可能会起作用,但不能保证这一点,特别是在以下情况下: