字符%7D在网址查询中的含义是什么?

时间:2014-03-19 15:17:14

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

如果我使用网址

访问我的网络应用程序

/vi/5907399890173952.html

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

/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)

我用于网址的正则表达式是

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

更新140319 21:54 CET

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

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

我现在用另一个}修补了它。

2 个答案:

答案 0 :(得分:57)

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

答案 1 :(得分:0)

您需要使用`而不是"'

例如:

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

而不是:

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