Bri*_*unt 5 python encryption django google-app-engine cryptography
我有两个系统需要交谈。系统设置如下:
System A,在Google App Engine(GAE)上运行Django(Python 2.5)
System B,通过Lighttpd在Ubuntu / Linux上运行Django(Python 2.6)(可能稍后是nginx)
系统A将使用Url Fetch定期向系统B发出请求(“请求”)。
系统B具有Django应用程序设置,可通过侦听这些请求,urls.py例如:
urlpatterns = patterns('producer.views',
url(r'^requisition$', 'requisition', name='requisition'),
)
Run Code Online (Sandbox Code Playgroud)
和一个views.py类似的东西:
import json
from django.http import HttpResponse
def requisition(request):
" do something "
response = HttpResponse()
response['Content-type'] = 'application/json'
response.write(json.dumps(...))
return response
Run Code Online (Sandbox Code Playgroud)
如果系统B仅对系统A的请求做出响应,那么这将是对系统安全性的宝贵补充。
我想知道系统B提供哪些选项来验证请求是否来自系统A。我考虑了以下问题:
理想情况下,我想以一个views.py类似这样的结尾:
...
from django.http import HttpResponseForbidden
def requisition(request):
" do something "
if not verify_request_origin():
return HttpResponseForbidden("Denied.")
response = HttpResponse()
...
Run Code Online (Sandbox Code Playgroud)
当发出的请求System B来自System AGAE 时,verify_request_origin()返回true 。
谢谢,我期待听到您的想法。
你说得对,前两个要点没有用。
安德鲁说的密码就足够了,除非您担心浏览器缓存问题。如果是,那么您仍然应该使用 SSL,但要通过hmac等方式向另一个应用程序进行身份验证,并使用它为会话生成共享密钥。秘密应该存在于代码中,而不是传输的数据中。
| 归档时间: |
|
| 查看次数: |
1250 次 |
| 最近记录: |