WordPress安装时会将发送referrer作为保护管理界面不被未授权用户使用的一种基本形式;不推荐在安装WordPress时禁用referrer。
WordPress 2.0.2及之后版本的referrer如何运行?
我们想要写新日志、更改博客外观或者执行其他管理任务时,WordPress会要求我们登录一个受保护的管理界面。(以安装完毕时系统给出的用户名和密码登录。)作为一种基本的安全防护措施,这种登录方式有效保护了博客管理功能不被未授权用户访问。
被认定是具有修改权限的授权用户后,我们就可以访问这些受保护的管理功能了。管理面板中的所有页面都是安全的,系统也不会要求我们访问每个页面都登录一次。一旦我们要访问其它管理界面,系统会检查我们访问的上一个页面,以此检验我们的用户权限。
WordPress系统通过检查浏览器发送的referrer来判断用户身份。
假设我们现在在www.wordpress.org主页上,然后我们点击链接进入Firefox。虽然我们看不见后台发生的情况,但进入Firefox页面时,浏览器会告诉新页面我们来自哪一个页面。浏览器告诉新页面的这类信息,被称为referrer。如果我们的网站上安装了监视流量的统计程序或脚本,统计程序和脚本向我们报告的信息中也会采用referrer中的内容。
大多数熟悉WordPress结构的用户都知道其它WordPress网站的post.php文件的所在位置,但即使这样我们也无法随意在其它网站上发表文章。如果我们试图访问这些网站的发表文章界面,会被系统重定向。这是因为浏览器向页面发出的referrer信息表明,我们没有成功登录。
怎样激活referrer功能
遗憾的是这个问题没有统一的答案。下面是一些激活referrer功能的方法,请大家根据浏览器和防火墙的类型自行查找。
如果没有与自己相应的应用程序类型,可以从其它类型中寻找有效信息——基本原理都是一样的,只是各个工具的使用方式有所不同。
在下面的介绍中如果没有找到自己需要的信息,可以先进入服务器的cpanel,之后是phpMyAdmin,最后在WordPress表中找到wp-options,在链接中包含/wordpress/ 文件夹。这样也可以解决问题。
Internet Explorer 6
可以在计算机的控制面板下的Internet选项中完成操作,也可以在浏览器工具菜单下的Internet选项中完成。
1. 在弹出的窗口中选择安全
2. 单击受信任的站点后,再单击站点按钮
3. 在上一个空白文本框中输入自己的网站地址,然后点击添加
4. 取消“对该区域中的所有站点要求服务器验证(https:)”选项的选中状态,确定
5. 返回弹出窗口的主界面,选择隐私选项(将滑块上的隐私设置程度选为中度是一个可接受的设置,但为保险起见,再次点击站点并输入自己的网站地址)
6. 点击允许
7. 最后点击确定
以上操作改变了浏览器的设置,但不会影响用户浏览网页。
Firefox 1.0及更高版本
RefControl
可以使用Firefox的RefControl插件:https://addons.mozilla.org/firefox/953/
手动设置
警告:该方法使所有网站都接收到referrer,因此具有一定风险性。
1. 在URL地址栏中输入about:config
2. 浏览器窗口会出现一长串以字母顺序排列的信息
3. 在其中查找network.http.sendRefererHeader
4. 默认情况下其值为2
5. 如果值为0——表示禁止发送referrer——鼠标右击,选择修改,输入2为其值
6. 如果修改无效,可尝试将值设为1
更多信息请参考http://kb.mozillazine.org/Network.http.sendRefererHeade
Opera
Opera浏览器默认referrer功能为激活状态。
如果已禁用referrer功能,可在工具菜单下功能选项的隐私选项中再次激活该功能
K-Meleon
K-Meleon浏览器默认referrer功能为激活状态。
如果已禁用referrer功能,可在工具菜单下隐私选项的锁定referrer功能(如果已经被锁定)选项中再次激活该功能。
Norton Internet Security防火墙
进入隐私控制>高级>添加站点
输入自己的网站地址(如example.com),确保输入内容是受许可的。
Norton Personal防火墙
有些网页会在用户访问前要求查看用户的referrer信息。如果我们希望允许referrer信息被发送到某个网页,首先需要为referrer的发送设立一些规则。
设立规则
打开Norton Internet Security或Norton Personal防火墙,进行以下操作:
在Norton Internet Security/Norton Personal Firewall 2003中
1. 点击选项>Internet安全或
2. 选择个人防火墙(有时可忽略该步骤)然后点击网络内容
在Norton Internet Security/Norton Personal Firewall 2004中
1. 双击隐私控制
2. 点击高级
3. 点击添加站点(出现新网站/域名对话框)
4. 输入希望接收referrer信息的网站名,点击确认。在这里我们假设网站是www.symantec.com,网站名会出现在选项窗口的左侧框架中。
5. 点击新站的名称
6. 之后单击全局设置
7. 在“可访问站点信息”中,清除“使用默认设置”
8. 点击允许
9. 点击确定关闭选项窗口
Netbarrier
进入隐私>网络>隐藏信息,取消“之前访问的网站”的选中状态。
Sygate Firewall防火墙
该防火墙的免费版本不能锁定referrer功能。
在能够锁定referrer功能的版本中可以:
点击工具>选项>安全
确保“激活隐藏模式浏览”未被选中。
Kerio Firewall 4防火墙
在网络过滤的隐私选项下开启HTTP referrer功能。
Zone Alarm Pro
- 在左侧的隐私按钮下单击网站列表
- 右击WordPress URL所在的“隐私标题”列,也可以点击“添加”来添加URL。
- 从菜单中选择“选项”
- 在第一个菜单“Cookies”中,取消“第三方cookies——删除个人隐私信息”的选中状态
- 点击“确定”
Agnitum Outpost Firewall Pro 2008
1. 单击设置
2. 选择网络控制
3. 在网络控制中,点击自定义,然后将状态更改为允许referrer
McAfee
1. 右击红色的M图标
2. 选择隐私服务
3. 选择选项
4. 在出现的McAfee隐私服务窗口中选择Cookies
5. 输入自己希望接收cookies的网站地址
6. 点击添加
7. 完成后关闭窗口
Privoxy
Privoxy适用于其它本地代理服务器与广告服务器。Privoxy中有一个“+hide-referrer”的选项,可以在referrer信息头部分“仿造一个url”;用户可以在default.action((-hide-referrer)中禁用选项,或者直接将网站域名放在user.action的 { fragile } 版块。另一个方法是阻止web浏览器设置代理自己的网站域名。
其它方法
如果以上方法都不能解决问题,下面还有些可能的解决方案:
- 检查CURL库是否已安装
-
删除cookies
- 如果近期更改了路径结构或域名,可以使用该方法
- 仅适用于WordPress 2.0——删除wp-content/cache文件夹。刚刚迁移WordPress的用户有必要删除该文件
-
重命名.htaccess文件(如果该文件确实存在)
- 在某些配置环境下,mod_rewrite会影响数据库访问,最终导致WordPress的siteurl设置不准确
-
检查数据库的wp_options表中的siteurl被放在WordPress安装文件的根目录下
- 例如:如果输入的网站域名是 http://example.com,作为一个URL它可以因为DNS正确而顺利解决问题,但如果作为一个referrer,这个域名则会导致错误,除非数据库中siteurl就是 http://example.com
-
有时问题可能由子域名导致
- 我们可能生成一个类似blog.example.com的子域名,并且将WordPress安装在www.example.com/blog下。这时可以在WordPress管理面板的设置菜单中选择常规选项,在其中查找WordPress安装地址(URI):字段。将网站地址改为http://www.example.com/blog。博客地址(URI):字段则仍然为http://blog.example.com
分类:中文手册