【问题标题】:Determine remote IP for AppEngine Blob upload确定 AppEngine Blob 上传的远程 IP
【发布时间】:2012-06-17 22:59:27
【问题描述】:

只是一个非常简单的问题: 有没有办法在处理请求的回调 servlet 中确定将 Blob 上传到 App Engine 的客户端的远程 IP?常规的 [request].getRemoteAddr() Java 函数返回处理上传的 Google 服务器的 IP,至少在开发模式下,我看到的唯一额外的标头字段是 X-AppEngine-BlobUpload = true,这没有帮助。

谢谢。

【问题讨论】:

    标签: google-app-engine upload client ip-address blobstore


    【解决方案1】:

    没有直接的支持。您可以通过在表单中​​隐藏您正在生成上传表单的客户端的 IP 地址来间接跟踪这一点。然后,一旦 blob 被上传并且控制权被重定向到你的应用程序,它就会在请求中可用,让你存储在某个地方。

    【讨论】:

    • 这绝对是一个解决方案。谢谢你。不过,在我的情况下,这会有点麻烦,因为我实际上是在使用 XHR 请求而不是表单进行上传......基本上,我正在寻找一种不明显的方式来了解上传是否即将到来来自上传 URL 所针对的客户端,而不是抢夺或猜到链接的人。你对此有什么想法吗?您认为我应该对此提出功能请求吗?在 Blobstore 服务生成的回调请求中包含“X-Forwarded-For”标头或其他内容可能相当简单。
    • 由于链接本质上是随机的,并且在生成它后仅在 10 分钟内有效,我不确定是否值得您花费太多时间尝试实施诸如此类的检查。
    • True...这是“完整”的故事:我对每个客户端请求都使用质询/响应身份验证,并且我将质询存储在 MemCache 中从客户端 IP 派生的命名空间中,以防止一个生日悖论漏洞,以防该服务变得非常受欢迎。我想我只会遇到与未决上传相关的第二组挑战,而不是特定的客户端 IP。它会起作用,只是不像我希望的那样干净......
    猜你喜欢
    • 1970-01-01
    • 2012-06-18
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 2011-09-21
    • 2011-10-01
    • 1970-01-01
    相关资源
    最近更新 更多