我想用发表GoogleDocs文件和叽叽喳喳的鸣叫为Silverlight应用程序的数据源,但跑进clientaccesspolicy问题。制作clientaccesspolicy代理解决方法的安全性影响是什么?
我看了很多文章像和this关于this是多么困难,以绕过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;
}
?>
因此,它使我纳闷:
- 为什么会有这么多的网址是否不支持clientaccesspolicy与否的讨论,因为你只需要WRI te a 简单代理脚本并通过它获取信息?
- 为什么没有服务,例如,像URL缩短服务,其中供应这个功能?
- 有什么安全影响有这样的脚本?
是的,这是有道理的,例如,我遇到了无法关注重定向网站的问题,但似乎我可以访问开放互联网上的任何公开文本文档,例如所有RSS源,发布的Google文档,任何公共网站。 – 2010-03-20 19:47:22
是否有任何提供此功能的公共服务?我认为收集正在被URL访问的URL类似于通过URL缩短服务收集的URL是很有价值的,然后所有的安全性都可以集中在一个点上 – 2010-03-20 19:49:55
好吧,我为你添加了URL访问控制建议,好点。 – 2010-03-21 06:03:40