【问题标题】:Allow only SWF file to access PHP script只允许 SWF 文件访问 PHP 脚本
【发布时间】:2014-09-20 21:19:04
【问题描述】:

是否可以限制仅从 Flash 访问 PHP 文件?例如。我有example.phpfile.swfFile.swfexample.php 发送请求,example.php 返回一个 JSON 字符串。

我不想让用户直接访问example.php(通过浏览器或其他方式)。

有什么想法吗?

【问题讨论】:

标签: php flash security


【解决方案1】:

我不太确定您是如何从 flashfile 发送请求的,但这是我会尝试的; 从 swf 文件中指定一个标头,该标头不会出现在来自网络浏览器的请求中,然后检查该标头是否存在于 example.php 的顶部,如果没有则结束脚本执行。

例子:

<?php
if( !isset($_SERVER['HTTP_MYSPECIALHEADER']) ){
    die('You cannot access this file directly!');
}
// Do whatever the script should do if the request came from the .swf file.

正如我所说,我不知道它如何与来自 swf 文件的通信一起工作,但您始终可以获取 $_SERVER 变量的 var_dump 来查看是否已经有任何标头可以用来检查请求是否来自swf 文件。

编辑:How do i know if the request came from flash swf?

看看这个。正如在那篇文章中所说,我认为您不能 100% 确定请求来自 flash 文件,因为用户总是可以操纵发送到服务器的内容。

【讨论】:

    【解决方案2】:

    简短的回答是不可能的。

    但是,您可以通过使用嵌入在 .swf 中的私钥(公钥在服务器上)对消息进行签名来增加难度。这会为不同的消息创建一个唯一的签名,您可以使用它来检查消息的完整性。您的消息还应包含时间戳,以便您拒绝超过 15 秒的请求以防止重放攻击。

    确实,人们可以通过反编译 .swf 来检索密钥,然后只需对自己的消息进行签名(但这需要更多的努力,而只是篡改标头)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-27
      • 1970-01-01
      • 2014-08-10
      • 2017-06-08
      • 2011-02-10
      • 2022-11-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多