【问题标题】:What are the security implications of making a clientaccesspolicy proxy workaround?制作客户端访问策略代理解决方法有哪些安全隐患?
【发布时间】:2010-03-21 14:02:55
【问题描述】:

我想使用 已发布的 GoogleDocs 文档twitter 推文 作为 Silverlight 应用程序的数据源,但遇到了 clientaccesspolicy 问题。

我阅读了许多文章,例如thisthis,这些文章讲述了解决clientaccesspolicy 问题有多么困难。

所以我编写了这个 CURL 脚本 并将其放在我的 PHP 站点上,现在我可以将任何 GoogleDocs 文档和 twitter 提要的文本输入到我的 Silverlight 应用程序中:

<?php
$url = filter_input(INPUT_GET, 'url',FILTER_SANITIZE_STRING);

$validUrls[] = "http://docs.google.com";
$validUrls[] = "http://twitter.com/statuses/user_timeline"; 

if(beginsWithOneOfThese($url, $validUrls)) {
  $user_agent = 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)';
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_COOKIEJAR, "/tmp/cookie");
  curl_setopt($ch, CURLOPT_COOKIEFILE, "/tmp/cookie");
  curl_setopt($ch, CURLOPT_URL, $url ); 
  curl_setopt($ch, CURLOPT_FAILONERROR, 1); 
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); 
  curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
  curl_setopt($ch, CURLOPT_TIMEOUT, 15);
  curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
  curl_setopt($ch, CURLOPT_VERBOSE, 0);
  echo curl_exec($ch);
} else
  echo "invalid url";

function beginsWithOneOfThese($main, $prefixes) {
  foreach($prefixes as $prefix) {
    if(beginsWith($main, $prefix))
      return true;
  }
  return false;
}

function beginsWith($main, $prefix) {
    return strpos($main, $prefix) === 0;
}

?>

所以这让我想知道:

  • 既然您只需要编写一个简单的代理脚本并通过它获取信息,为什么会有这么多讨论关于 URL 是否支持客户端访问策略?
  • 为什么没有服务,例如像 URL 缩短服务,它提供这个功能?
  • 拥有这样的脚本会有哪些安全隐患

【问题讨论】:

    标签: silverlight security clientaccesspolicy.xml


    【解决方案1】:

    虽然您可能认为代理可以为您提供与让客户端发出请求相同的功能,但事实并非如此。更具体地说,您将没有目标站点的客户端 cookie/凭据,在某些情况下,客户端可以访问目标站点,但您的代理不能(例如 Intranet)。

    http://blogs.msdn.com/ieinternals/archive/2009/08/28/Explaining-Same-Origin-Policy-Part-1-Deny-Read.aspx 详细解释了同源策略。

    就您的代理的安全影响而言,这取决于您是否对此具有访问控制权。否则,坏人可能会在入侵网站或下载非法内容时使用您的代理来隐藏他的踪迹。

    【讨论】:

    • 是的,这是有道理的,例如我确实遇到了无法跟踪重定向站点的问题,但似乎我可以访问开放 Internet 上的任何开放文本文档,例如所有 RSS 提要、已发布的 Google 文档、任何公共网站。
    • 是否有提供此功能的公共服务?我认为收集正在访问的 URL 以类似于 URL 缩短服务收集的方式收集是很有价值的,然后所有的安全性都可以集中在一个点上
    • 好的,我按照你的建议添加了 URL 访问控制,好点。
    猜你喜欢
    • 2011-08-25
    • 1970-01-01
    • 2015-03-02
    • 2010-09-14
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2021-05-21
    • 1970-01-01
    相关资源
    最近更新 更多