【问题标题】:What do the chars %7D mean in an url query?url 查询中的字符 %7D 是什么意思?
【发布时间】:2014-04-25 23:04:46
【问题描述】:

如果我使用 url 访问我的 web 应用程序

/vi/5907399890173952.html

然后它可以工作,但是当我查看日志文件时,googlebot 正在尝试访问一个类似的 url,这会产生异常:

/vi/5907399890173952.html%7D%7D

这是什么意思以及如何将其作为异常处理?来自python的消息是:

 /vi/5251302833520640.html%7D%7D 404 20ms 0kb Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) module=default version=release140319
66.249.67.109 - - [19/Mar/2014:07:53:32 -0700] "GET /vi/5251302833520640.html%7D%7D HTTP/1.1" 404 84 - "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" ms=21 cpu_ms=0 cpm_usd=0.000009 app_engine_release=1.9.1 instance=00c61b117c0bc0f980f2a37a6ac534786055d3ab
E 2014-03-19 15:53:32.678
get() takes exactly 3 arguments (2 given)

我用于 url 的正则表达式是

('/vi/(\d+)(\.html?)?', NewHandler)

更新 140319 21:54 CET

我想我发现了一个 jinja2 模板的泄漏:

{{scored_document.fields.0.value|safe}

我现在用另一个} 对其进行了修补。

【问题讨论】:

    标签: python google-app-engine url jinja2 webapp2


    【解决方案1】:

    您需要使用` 而不是"'

    例如:

    `http://localhost:8080/api/v1/user-profile/${userProfileID}/image/upload`
    

    而不是:

    "http://localhost:8080/api/v1/user-profile/${userProfileID}/image/upload"
    

    【讨论】:

      【解决方案2】:

      %7D 是 } 字符的 ASCII 码,它可能是从模板中泄露出来的...

      【讨论】:

      • 树枝吓到我了!
      • 我被刀片吓到了!
      • 我刚刚忘记从 js 模板文字中的变量引用中删除 }
      • 带有 IDE 自动完成功能的 TypeScript 模板让我省心。
      • 浪费了 1 小时检查这个
      猜你喜欢
      • 2014-09-14
      • 1970-01-01
      • 1970-01-01
      • 2011-01-20
      • 2012-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多