小编Jon*_*der的帖子

缓存(假)静态内容,这对于Python的GAE实际上是动态的

在我的GAE应用程序中,我在app.yaml中有以下处理程序:

- url: /lang/strings.js
  script: js_lang.py
Run Code Online (Sandbox Code Playgroud)

因此,调用/lang/strings.js将实际映射到js_lang.py请求处理程序,该处理程序将响应填充为application/javascript.我希望将此响应缓存在浏览器中,以便只在一段时间内调用请求处理程序(例如,/lang/strings.js?v=xxxx当我部署新版本的应用程序时,通过导入"使缓存无效" .

对于普通的静态内容,有一个default_expiration非常方便的元素.并导致http响应标头如下:

Expires: Fri, 01 Apr 2011 09:54:56 GMT
Cache-Control: public, max-age=600
Run Code Online (Sandbox Code Playgroud)

好的,问题是:我是否有一种简单的方法可以返回这样的标题,而无需明确设置它们?或者,是否有一个代码片段接受一些基本参数,如"天",并产生预期的http标头?

编辑2011年4月12日

我只需设置两个标题就可以解决这个问题Expires,Cache-Control如下所示:

import datetime
thirty_days_in_seconds = 4320000
expires_date = datetime.datetime.now() + datetime.timedelta(days=30)
HTTP_HEADER_FORMAT = "%a, %d %b %Y %H:%M:00 GMT"        

self.response.headers["Expires"] = expires_date.strftime(HTTP_HEADER_FORMAT)
self.response.headers["Cache-Control"] = "public, max-age=%s" % thirty_days_in_seconds
Run Code Online (Sandbox Code Playgroud)

python google-app-engine

10
推荐指数
1
解决办法
1449
查看次数

适用于OAuth提供程序的WWW-Authenticate标头

OAuth 1.0规范中,建议使用以下WWW-Authenticate标头进行响应:

WWW-Authenticate: OAuth realm="http://server.example.com/"
Run Code Online (Sandbox Code Playgroud)

是否适合在此标题中添加任何其他信息性数据?如果对受保护资源的请求失败,是否可以包含一些有关原因的信息?如:

WWW-Authenticate: OAuth realm="http://server.example.com/", access token invalid
Run Code Online (Sandbox Code Playgroud)

或者这与响应标题的目的相反?

oauth response-headers

10
推荐指数
3
解决办法
1万
查看次数

在HTTP站点上嵌入Youtube时出现Internet Explorer警告?

编辑2011年3月22日:由于Youtube现在提供HTTPS访问,因此该问题不再具有相关性:http://apiblog.youtube.com/2011/02/https-support-for-youtube-embeds.html


我们的应用程序通过HTTPS运行,很少给我们带来任何问题.然而,当谈到youtube时,他们没有通过SSL连接呈现任何内容这一事实让我们在尝试嵌入剪辑时感到头痛.主要是因为Internet Explorers着名的小警告信息:

"您是否只想查看安全传送的网页内容?此页面包含无法使用安全HTTPS等提供的内容"

我试图通过几种方式解决这个问题.最有希望的是使用Apache中的ProxyPass功能映射到YouTube.

像这样:

ProxyPass: /youtube/ http://www.youtube.com
ProxyPassReverse: /youtube/ http://www.youtube.com
Run Code Online (Sandbox Code Playgroud)

这摆脱了恼人的警告.但是,youtube SWF无法启动流式传输我设法加载到浏览器中的SWF只是声明:"发生错误,请稍后再试".

可能的解决方案可能是

  • 下载youtube FLV:s并从自己的域名中提供服务(gah)
  • 使用自定义FLV播放器,只通过https代理从youtube流式传输FLV:s?

3月10日更新:我尝试使用Googles Youtube API for ActionScript加载播放器.它起初看起来很有希望,我能够通过我的https://代理加载播放器.但是,加载的SWF包含对不同非ssl URL的显式调用的大量内容,以便为FLV流创建身份验证链接以及加载不同的跨域策略.

看起来我们似乎不应该直接访问flv-streams.这使得很难绕过Internet Explorer警告,而不是从youtube中删除FLV:s并将其提供给您自己的域.

有解决方案可以下载你的FLV:s.但这不符合Youtube的使用条款,对我们来说真的不是一个选择.

youtube ssl https internet-explorer flvplayback

9
推荐指数
3
解决办法
1万
查看次数

Mercurial - 列出用户的头脑

有没有办法列出由特定用户创建的头?

使用该hg heads命令我无法过滤用户.

虽然hg log我可以过滤用户,但我无法弄清楚如何仅列出分支上的最后一个变更集.

更新:

感谢Tim Henigan的回答如下.我得出以下结论.

log -r "head() and not closed() and user('<username>')"
Run Code Online (Sandbox Code Playgroud)

在我的特殊情况下,我只想按相反的顺序排列最新的磁头,所以我为这个功能设了一个别名.

[alias]
myhist = log -r "reverse(head() and not closed() and user('<username>'))" --template "{rev}: {branches}\n" -l 10
Run Code Online (Sandbox Code Playgroud)

因此,调用hg myhist给了我最多十个最近的变更集,这些变更集都是其分支上的最后一个变更集.我使用该--template选项只能查看修订号和分支名称,以便快速了解我最近的活动.

mercurial

6
推荐指数
1
解决办法
2188
查看次数

我应该 XSS 保护来自我的 API 的响应吗?

我有一个 RESTful API 可以同时返回JSONXML.

说,例如,一个请求被用于诸如一个文档作为这样的伪影的所有评论制成:GET /document/DOCUMENT_ID/comments.json。响应如下所示:

[
  {
    "created_time": 1304598075,
    "text": "<script type=\"text/javascript\">alert(document.cookie)</script>",
    "user_id": 2293,
    "id": 184124
  },
  {
    "created_time": 1304598043,
    "text": "It's over ninethousaaaaaanddd!!!",
    "user_id": 2293,
    "id": 184122
  }
]
Run Code Online (Sandbox Code Playgroud)

在我自己的服务中,第一个评论将在呈现之前进行 XSS 转义。但是当通过 API 访问时,我必须信任 API 的实现者来进行转义。

如果 API 是在通过浏览器呈现的 Web 服务中实现的,则攻击向量是非常真实的。

另一方面,如果 API 是在桌面应用程序或移动应用程序中实现的 - XSS 转义将是一个完全麻烦且不需要的。

我应该转义我通过 API 返回的所有字符串吗?或者我应该实现一个设置,以便在注册第三方应用程序时 API 实现者可以指定他是否想要转义响应?

了解其他人如何处理这个问题会很有趣。

security api xss

5
推荐指数
1
解决办法
1706
查看次数

当前的 OAuth 1.0 规范 - 它如何解决会话固定攻击?

我已经按照这个规范实现了一个 OAuth 1.0 提供者,它应该是最新的。对该规范进行了修订,以解决2009 年发现会话固定攻击。问题是,由于不必区分这两个规范,我不确定在规范中添加/更改了哪些措施以响应该问题。

自从我实施了“正确”的规范后,我很难向利益相关者解释我采取了哪些措施来降低风险。

有人愿意为我解释这个问题吗?

oauth session-fixation

3
推荐指数
1
解决办法
863
查看次数

如何在Mac OS X上从浏览器打开应用程序?

我正在做一个Twitter Mac OS X应用程序,需要使用OAuth1.0.在请求oauth/access_token接口时,是否可以将oauth_callback参数用于此目的?

换句话说,如何在Max OS X上从浏览器打开应用程序?

oauth callback openurl

2
推荐指数
1
解决办法
4233
查看次数