首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Facebook Proxy Loader安全

Facebook Proxy Loader安全
EN

Stack Overflow用户
提问于 2011-05-19 19:58:47
回答 1查看 1.4K关注 0票数 1

我正在使用PHP代理脚本将图片从Facebook加载到Flash中,而没有任何沙箱冲突。它取自这里的指南:http://www.permadi.com/blog/2010/12/loading-facebook-profile-picture-into-flash-swf-using-open-graph-api/。相关的PHP代码如下:

代码语言:javascript
复制
<?php
    $path=$_GET['path'];
    if (stristr($path, "fbcdn.")==FALSE && stristr($path, "facebook.")==FALSE)
    {
        echo "ERROR";
        exit;
    }
    header("Content-Description: Facebook Proxied File");
    header("Content-Type: image");
    header("Content-Disposition: attachment; filename=".$path);
    @readfile($path);
?>

该指南提到,对于真实世界的应用程序,建议使用额外的安全措施。有哪些额外的措施可以应用于此?也许是某种从Flash传递到PHP的密钥?

我意识到我不能做什么来完全保护Flash不被反编译,但是我能防止脚本被恶意使用吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-19 20:04:46

您应该限制代理从Facebook获取图像文件。您当前的“保护”将允许例如这个URL:http://virus.provider.com/fbcdn./virus.exe

  • 可以更好地检查域名,也许可以使用parse_url parse_url来确认您确实只为镜像提供服务。确保文件名以图像扩展名结尾(这对Windows客户端有很大帮助),但也要考虑对实际文件content.
  • Consider进行更彻底的检查,增加对$_SERVER['HTTP_REFERER']的检查,以降低使用脚本进行热链接的动机。如果HTTP_REFERER不是空的,请检查它是否真的是您的站点。这将在很大程度上保护你免受带宽窃贼的侵扰。
  • 确保它实际上是一个远程路径。例如,您当前的脚本可能会发送未经解析的PHP文件,包括密码和其他秘密!
  • Content-Disposition标头中的文件名应设置为文件名,而不是整个路径。

还可以考虑在代理服务器上缓存文件数据,以加快对同一文件的多次调用。

以下是需要牢记的几件事。如果你多花点心思,你可能会发现更多。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6058273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档