我有一个网站,它使用带有Django和Google App Engine的Amazon EC2,用于其强大的Image API和图像服务基础架构。当用户上传图像时,浏览器向我的EC2服务器发出针对Blobstore上传URL的AJAX请求。我通过我的Django服务器获取这个,所以我可以检查用户是否经过身份验证,然后服务器需要从App Engine服务器获取URL。上传完成并在App Engine中处理后,我需要将上传信息发送回django服务器,以便我可以构建所需的模型实例。我怎么能做到这一点?我正在考虑使用urllib,但我如何确保这一点以确保网址只能由我的服务器访问而不是由网络用户访问?也许是某种秘密密钥?
答案 0 :(得分:2)
除了Https调用(您应该将信息传输到django),您可以使用AES加密(使用Pycrypto /任何其他lib)。它需要一个密钥来加密你的消息。
答案 1 :(得分:1)
对于服务器到服务器的通信,除了默认的安全性之外,传统的安全建议会在Web服务器级别为URL建议某种IP范围限制。但是,由于您正在从云提供商拨打电话到另一个云提供商,因此您永久控制客户端和服务器IP地址的能力可能会降低。
那就是说,我建议使用标准的用户名/密码认证机制和HTTPS来实现传输安全性。基本的auth用户名/密码将是我的推荐(https:\\username:password@appengine.com\
)。另外,我会确保根据特定时间窗口中的一定数量的失败尝试强制执行锁定。这会阻止强行密码的尝试。
根据您在App Engine上使用的Web框架,可能已经支持我刚刚提到的部分或全部内容。如果您使用有关架构的更多详细信息更新此问题或打开包含更多信息的新问题,我们可以为您提供更准确的建议。
答案 2 :(得分:1)
SDC提供从AppEngine到其他地方的专用网络的安全隧道 - 如果您在那里运行它,可能是您的EC2实例。