是否可以仅限制从Flash访问PHP文件?例如。我有example.php
和file.swf
。 File.swf
向example.php
发送请求,该请求返回JSON字符串。
我不想让用户直接访问example.php
(通过浏览器或其他)。
有什么想法吗?
答案 0 :(得分:0)
我不太确定你如何从flashfile发送请求,但这是我会尝试的; 指定swf文件中的标头,该标头不会出现在来自webbrowser的请求中,然后检查标头是否存在于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文件,因为用户可以操作发送到服务器的内容。
答案 1 :(得分:0)
简短的回答是不可能的。
但是,您可以通过使用嵌入.swf(公钥在服务器上)的私钥对邮件进行签名来加倍努力。这为不同的消息创建了一个唯一的签名,您可以使用它来检查消息的完整性。您的邮件还应包含时间戳,以便您拒绝超过15秒的请求以防止重播攻击。
确实,人们可以通过反编译.swf来检索密钥,然后只签署他们自己的消息(这需要更多的努力,只是篡改标题)。