gpt4 book ai didi

python - HTTP_REFERER 指向原始网站? ( flask )

转载 作者:太空宇宙 更新时间:2023-11-03 15:30:34 25 4
gpt4 key购买 nike

这是我的网络应用程序的流程:

facebook.com  -->  mysite.com/route --> mysite.com/foo?uuid=X

这是 mysite.com/route 的代码:

@app.route('/route')
def route():
return redirect(url_for('foo', uuid=some_uuid))

对于/foo,我有以下日志记录功能:

def log_request(route):
@functools.wraps(route)
def wrapper(*args, **kwargs):
keys = ['HTTP_ACCEPT', 'HTTP_ACCEPT_ENCODING',
'HTTP_X_FORWARDED_FOR', 'HTTP_REFERER',
'HTTP_USER_AGENT', 'PATH_INFO',
'QUERY_STRING', 'REMOTE_ADDR']
dumpable = { k:request.environ.get(k, None) for k in keys }
print(json.dumps(dumpable))
return route(*args, **kwargs)
return wrapper

我有 @log_request 的唯一地方是 foo:

@app.route('/foo')
@log_request
def foo():
...

当我在 Heroku 中检查日志时,我看到记录了以下内容:

{"QUERY_STRING": "uuid=3de61bee07794323aaa5899bba2ef9e3",
"HTTP_ACCEPT_ENCODING": "gzip, deflate", "PATH_INFO": "/foo",
"HTTP_X_FORWARDED_FOR": "__REDACTED__", "REMOTE_ADDR": "__REDACTED__",
"HTTP_USER_AGENT": "__REDACTED__", "HTTP_ACCEPT":
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"HTTP_REFERER": "http://m.facebook.com"}

我的问题是,为什么 HTTP_REFERER 是 http://m.facebook.com?不应该是 mysite.com/route 吗?

最佳答案

redirect() 导致 Flask 发送 302 Found响应返回浏览器,并将 Location header 设置为新 URL。然后,浏览器发出请求来访问新位置。此时,Referer header 将指向之前的位置,即发出 302 重定向的位置。

要么不使用重定向(只需直接调用您的 foo View ),或者在 Cookie 或浏览器将传递的其他信息中记录引荐来源网址到您的下一个网址。

关于python - HTTP_REFERER 指向原始网站? ( flask ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42912935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com