zmirror icon indicating copy to clipboard operation
zmirror copied to clipboard

Google镜像无法“关闭安全搜索”

Open licess opened this issue 9 years ago • 7 comments

首先感谢,zmirror很棒 我在使用终于到一个问题自己搭建的g镜像和demo上的测试都是无法关闭安全搜索

licess avatar Sep 23 '16 13:09 licess

原因

zmirror自带配置文件的google镜像是 google.com.hk .hk的google是无法关闭安全搜索的, 只有 .com 才能关闭

国别重定向

额至于为什么不用 .com, 是因为google会自动把 .com 重定向到国别域名 (比如.hk) 比如在zmirrordemo服务器上执行

curl https://www.google.com/

的结果是这样的

HTTP/1.1 302 Found
Alt-Svc: quic=":443"; ma=2592000; v="36,35,34,33,32"
Cache-Control: private
Content-Length: 390
Content-Type: text/html; charset=UTF-8
Date: Fri, 23 Sep 2016 13:55:48 GMT
Location: http://www.google.com.hk/url?sa=p&hl=zh-CN&pref=hkredirect&pval=yes&q=http://www.google.com.hk/%3Fgws_rd%3Dcr&ust=1474638978173214&usg=AFQjCNFHjPbNxC5AWu-fQ9efDvgtGlZmIw
P3P: CP="This is not a P3P policy! See https://www.google.com/support/accounts/answer/151657?hl=en for more info."
Server: gws
Set-Cookie: NID=87=ORo4OiqcVGhMKFN9jhxYApfpVmAvcsXK4CuaR6nSetrjiDM2WDIt663Ed5SVNpTdZ01JD5blDOpY1sVlTjDgpdV2W2A1LGjGso2Jz7V8mIiaAYFMN2q1jHM5KA8m2NI1; expires=Sat, 25-Mar-2017 13:55:48 GMT; path=/; domain=.google.com; HttpOnly
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.com.hk/url?sa=p&amp;hl=zh-CN&amp;pref=hkredirect&amp;pval=yes&amp;q=http://www.google.com.hk/%3Fgws_rd%3Dcr&amp;ust=1474638978173214&amp;usg=AFQjCNFHjPbNxC5AWu-fQ9efDvgtGlZmIw">here</A>.
</BODY></HTML>

请求被重定向到了 www.google.com.hk

避免国别重定向

对于如何避免国别重定向, 目前已知的方法只有用户主动访问 https://www.google.com/ncr 在访问这个url后, 会给用户设置一个(类似乱码的)cookie, 在里面记录了_不进行国别重定向_的标志, 而具体是怎么样, 我无法知道. 所以也无法由zmirror模拟在cookie中设置这个_不进行国别重定向_的标志

而由浏览器主动请求 https://www.google.com/ncr 至少目前我想不出合理的方案 :disappointed:

未来可能的解决方法

最理想的话, 就是能让zmirror在cookie中模拟出_不进行国别重定向_的标志, 但是希望渺茫

另一种比较现实的方法, 是zmirror设置一个自己的ncr标记, 对于所有没有该标记的请求, 全部307重定向到 /ncr 相当于强制所有访问者都必须访问一次 /ncr 这种方法虽然可行, 但是会让google镜像的配置文件变得相当复杂, zmirror源码也需要一些修改

不过由于 google.com 的用户体验比 .com.hk要好一截(比如界面), 还是会考虑加上这些修改的, 到时候google可能会分成两个配置文件, 一个简单的 .com.hk, 一个复杂的 .com

欢迎提供避免国别重定向的方法

RT :smile:

aploium avatar Sep 23 '16 14:09 aploium

将会在近期版本加入强制 /ncr 的机制, 非常感谢

aploium avatar Sep 23 '16 14:09 aploium

新用户重定向 /ncr 的功能已经实现了(尚未commit) 但是存在一个问题:

当浏览器(Chrome 52)访问 www.google.com 时, 显示的是中文(正常), 如下图 before ncr 但是在访问了 /ncr 之后, 界面变成了英语 after ncr (在真实google中的结果, 镜像后的google表现相同)

不知道原因.

也就是说, 现在虽然可以通过 /ncr 重定向来做到让用户留在google.com (从而达到关闭"安全搜索"的目的) 代价是google界面变成英文

不知道有没有能在 /ncr 之后让google保留中文界面的方法

aploium avatar Sep 23 '16 16:09 aploium

发现在 /ncr 后, 可以通过在query string中手动添加 hl=zh-CN 来主动使用中文界面 比如 https://www.google.com/webhp?hl=zh-CN

刚添加的配置文件中, 通过主动给url添加 hl=zh-CN 来使访问者查看到的是中文界面

配置文件还有待测试.

如果想要从旧的google.com.hk升级到新的google.com配置文件:

  1. 复制 more_configs/experimental__config_google.py 到 zmirror 根目录(wsgi.py所在目录), 并重命名为 config.py 覆盖掉之前的
  2. 复制 more_configs/experimental__custom_func_google.py 到zmirror根目录, 并重命名为 custom_func.py
  3. 修改 config.py 中的 my_host_name 选项的值为你自己的域名
  4. 执行git pull来更新zmirror程序本身(不要忘记)
  5. 重启apache

aploium avatar Sep 24 '16 00:09 aploium

使用新google配置文件的demo: https://dev.zmirrordemo.com/ (issues关闭后会撤掉)

aploium avatar Sep 24 '16 00:09 aploium

下图是新配置文件时首次请求的traffic ![network traffic](https://cloud.githubusercontent.com/assets/15957250/18804959/49d843dc-8235-11e6-93c2-27db3943b91a.png) 首先会被重定向到 /ncr 然后由google本身重定向回 / 再由zmirror重定向到 /?hl=zh-CN 只有首次请求会发生这么多重定向 之后的请求都是直达或只需要一次 hl=zh-CN 的重定向

目前仍然会出现 /ncr 失效的问题

aploium avatar Sep 24 '16 01:09 aploium

@zjuchenyuan 同学发现, 在 .com.hk下, 只要把语言设置成英语或者中文繁体, 就能关闭 safe search 可以作为一种不错的方案

.com的国别重定向好麻烦........QAQ

aploium avatar Sep 24 '16 03:09 aploium