Google app engine 如何获取用户';从Blobstore上载处理程序获取IP?

Google app engine 如何获取用户';从Blobstore上载处理程序获取IP?,google-app-engine,python-2.7,blobstore,Google App Engine,Python 2.7,Blobstore,我试图从上载处理程序内部获取用户的IP,但似乎提供的唯一IP是0.1.0.30。有没有办法解决这个问题,或者有没有办法从上载处理程序内部获取用户的实际IP?尝试通过create\u upload\u url()在生成上载url的位置检查用户IP 上传处理程序实际上是在上传完成后由Blobstore上传逻辑调用的,因此出现了奇怪的IP。您建议怎么做?我正在考虑使用正则表达式从create\u upload\u url()调用中获取上传密钥,并将其与创建url时的用户IP一起存储在数据存储中。上载密

我试图从上载处理程序内部获取用户的IP,但似乎提供的唯一IP是
0.1.0.30
。有没有办法解决这个问题,或者有没有办法从上载处理程序内部获取用户的实际IP?

尝试通过
create\u upload\u url()
在生成上载url的位置检查用户IP


上传处理程序实际上是在上传完成后由Blobstore上传逻辑调用的,因此出现了奇怪的IP。

您建议怎么做?我正在考虑使用正则表达式从
create\u upload\u url()
调用中获取上传密钥,并将其与创建url时的用户IP一起存储在数据存储中。上载密钥似乎是在请求头中传递的。问题是,在上载发生之前(当显示表单时),您拥有用户IP,然后在上载完成时,您会获得密钥(在上载处理程序中),但您没有获得正确的IP(sice upload handler由GAE内部服务调用。您的blobstore upload handler还获取所有其他表单数据,因此您可以创建包含IP地址的隐藏表单字段。这用于验证和禁止用户,因此简单地将IP存储在隐藏字段中是不可接受的安全措施。我正在考虑存储用户的IP在隐藏字段中加密,然后存储一个哈希值
md5(md5(ip+salt)+md5(uploadkey+salt))
,但这似乎允许重放攻击。如果存储哈希值,则可以在上载后使其无效(删除)。这将防止回复攻击。