2

我已经创建了一个 webproject Web2Py,并希望用户可以正常http://访问http://.

每次我键入http://domain.pythonanywhere.comet 时都会将我重定向到http://domain.pythonanywhere.com.

它需要 0.5 秒。做 SSL 检查,我想避免这种情况。

这是默认设置:

## if SSL/HTTPS is properly configured and you want all HTTP requests to
## be redirected to HTTPS, uncomment the line below:
# request.requires_https()
4

2 回答 2

5

PythonAnywhere dev here:这看起来像我们这边的一个错误。我们为自己的站点“固定”HTTPS,因此人们总是会访问https://www.pythonanywhere.com/,但看起来这可能已经泄露到客户站点。

只是为了清楚起见——如果有人访问http://yourusername.pythonanywhere.com/,那么我们最初不会强制它访问 https 站点——他们会得到 http 站点。但是如果他们随后访问https://yourusername.pythonanywhere.com,那么他们的浏览器会记住他们已经访问了 https 域,因此所有未来的请求都会重定向到那里。

这实际上是一种很好的做法(它可以解决许多安全问题),但我们不应该强迫人们这样做。

[更新] 该错误现已修复,非常感谢 boje 指出我们 :-) 一个警告 - 如果您在我们应用修复之前曾通过 HTTPS 访问过您的网站,那么您仍将被迫使用 HTTPS . 您需要清除浏览器历史记录才能看到新的未固定行为。

于 2014-11-07T14:05:03.157 回答
2

我遇到了一个问题,让 http:// 重定向到 https:// 我在这里找到了 google group post 。下面的代码可能会给你一些关于你的问题的想法,在 db.py 下添加:

############ FORCED SSL #############
from gluon.settings import global_settings
if global_settings.cronjob:
    print 'Running as shell script.'
elif not request.is_https:
    redirect(URL(scheme='https', args=request.args, vars=request.vars))
    session.secure()
#####################################
于 2016-04-07T15:22:39.030 回答