2009年2月18日星期三
原文: Open redirect URLs: Is your site being abused?
发表于:2009年1月30日星期五,下午5:17
没有人愿意被恶意软件或网络垃圾侵扰,
网站管理员们经常会面对诸多需要帮助用户重定向到其他页面的情况。
最近这种滥用比较普遍,
我们注意到,
-
将用户重定向到服务器某一文件
(如
PDF文件)
的脚本有时会很脆弱,容易被恶意利用。
如果您使用的是可以上传文件的内容管理系统( CMS ) ,您应该确认您网站下载区的链接是直接指向文件而不是通过重定向来指向的。请留意这样的链接形式:
example.com/ie/ie40/download/?
- 网站的内部搜索结果页 上有时有自动重定向选项,这也比较容易被恶意利用。请留意下面形式的网址,它们会将用户自动重定向到“url="后所跟的网址上:
example.com/search?q=user+search+keywords&url=
-
跟踪点击量
的联盟计划系统、广告程序或网站统计信息也是有被滥用危险的。
示例网址包括:
example.com/coupon.jsp?code=ABCDEF&url=
example.com/cs.html?url=
example.com/cs.html?url=
-
代理网站
,虽然这不完全是技术上的重定向,
但它被设计成帮助用户登录其他网站,因此也比较容易遭到滥用。 包括用于学校和图书馆的代理网站。例如:
-
在某些情况下,
登录页 会将用户重定向回他们登录前试图访问的页面,而这也是容易遭恶意利用的。 请留意类似这样的网址参数:
-
用户离开网站时
向用户提供信息的缓冲网页
的脚本易被滥用。
大量的教育机构, 政府部门以及大型企业的网站采用这样的脚本来让告知用户, 您正在离开本站而前往访问外部网站上的信息,例如以下网址模式:
example.com/redirect/
example.com/out?
example.com/cgi-bin/redirect.cgi?
example.com/out?
example.com/cgi-bin/redirect.cgi?
除了上述网址实例外,
-
检查被滥用的网址是否在谷歌搜索结果中出现。尝试在搜索框中输入[site:您的域名
]搜索您的网站,看看是否有您不熟悉的内容出现在搜索结果中。您还可以在搜索词中输入一些按理说不应出现在您内容中的关键词, 如商业意味非常重的词汇或是某些色情词汇。 正常情况下 ,搜索[site:您的域名 某色情词汇]应该没有结果,但如果您搜索到结果的话,那么您就应该提高警惕了。您可以使用 谷歌快讯 进行自动搜索检查。
-
您也可以留意显示在网站管理员工具 热门搜索查询 中的看起来不太正常的搜索词。 如果您的网站是关于家族谱系学的, 但在搜索查询中却大量出现色情、博彩等词汇, 那么这可能是一个危险的信号。另一方面, 如果您有一个药物信息的网站, 如果某名人的名字频繁出现在您的热门查询中,那么这也是不太正常的。 请密切留意网站管理员工具消息中心中来自谷歌的任何信息。
-
检查您的服务器日志或网络分析软件包,看看有没有陌生网址参数
(比如 "=http:" 或 "=//")
或某段时间某一重定向网址的访问量突然增大的情况。
您也可以在 网站管理员工具 中查看含有外部链接的网页。
-
如果有用户抱怨您网站的有不良内容或恶意软件,而您又能极为肯定您的网站肯定不存在这些问题的话,那么您也应该提高警惕。 您的用户可能被您域名上的某些网址带到了含有恶意内容的其他网站上,而误以为这些内容是属于您的网站的。
遗憾的是,没有一种简单的方法能百分之百地确定您的重定向没有被恶意利用。
-
改变重定向代码,增加检查referer的环节
。因为在大多数情况下,
每个对重定向脚本的合法访问和使用都应当通过您的网站, 而不是搜索引擎或其他地方。您可能需要多一些理解, 因为一些用户的浏览器可能不会发送referer信息, 但如果您发现有用户来自外部网站,您可以予以阻止或警告。
-
如果您的脚本本意只是向用户发送内部网页或文件(例如,
文件下载的网页) ,您应该 明确禁止任何指向外部的重定向 。
-
考虑制定一个安全目的地网站的名单
。在这种情况下,
您的代码将记录所有向外重定向的链接, 然后在向用户进行重定向之前先根据这个名单进行检查以确保重定向目的地是一个合法的经您许可的网站。
-
将您的重定向签名加密
。
如果您的网站确实需要提供网址重定向, 您可以将目标网址打散,并将加密签名作为另外一个参数包含在实施重定向的网址上。 这可以使您的网站在做重定向时无需向公众开放你的网址转向器 。
-
如果重定向功能对您的网站来说可有可无,那么建议您还是
禁用或取消重定向功能
。
我们经常发现,对很多网站来说,网络垃圾制造者是这些网站重定向功能的唯一使用者 ,这仅仅是因为网站建设初期这项功能被默认为启用,而您对此毫无察觉。
-
使用
robots.
txt 将搜索引擎排除在网站重定向脚本之外 。 尽管这不能完全解决问题, 因为攻击者仍然可以在垃圾邮件中使用您的域名,但这样做可以使您的网站不那么容易成为黑客的攻击目标,而且用户也不会被搜索结果中的恶意重定向网址欺骗。 如果您的重定向脚本与其他脚本保存在同一个子文件夹里,而且另外的脚本也没有必要出现在搜索结果中的话,建议您将包含脚本的整个子目录对搜索引擎封闭,这将增加攻击者找到您脚本的难度,从而起到保护作用。
-
您也可以
使用网站管理员工具
移除那些被恶意利用的网址
。但是,
网络垃圾制造者可能还攻击、 滥用了其他网站,并产生了大量指向您网站上垃圾网址的链接。 如果您看到可疑的网站或垃圾论坛链接到您的网站, 可以随时向我们 举报网络垃圾 , 当然我们更欢迎您 注册网站管理员工具并提交经过身份验证的垃圾网站举报 。