如何才能从一个链接访问文件

时间:2013-08-06 15:25:30

标签: php security amazon-web-services moodle

我的亚马逊AWS账户上有一个HTML文件,我在一个名为Moodle的学习环境中以iFrame的形式链接到该账户。由于这些人已经付钱访问这个课程材料,我一直试图找出是否有可能只能从moodle中的iFrame访问这个文件(即有人无法在源代码中查找url并分享它与没有参加课程的人一起)我知道必须有一些我可以写的PHP,但我相当新。它不一定是1337黑客证明,基本上足够安全,以阻止你的普通计算机精明的用户。希望在这里得到一些建议!提前谢谢!

3 个答案:

答案 0 :(得分:0)

您可以在本地存储文件(与Moodle安装相同的服务器),检查是否设置了某个SESSION var,并显示该文件:

<?php 
if (!isset($_SESSION['user_id']) || empty($_SESSION['user_id'])) {
   die('not authorized');
}
// else, the file is displayed
?>

你甚至可以将页面上传到Moodle(或将其打印成PDF并上传),但是我已经在Moodle做了一段时间。

答案 1 :(得分:0)

您要阻止的是人们将链接分享给素材。假设您可以阻止这种情况。什么阻止我订阅,获取材料并通过USB记忆棒将其交给我的朋友?

隐藏链接会让人们分享更加困难,但我会说只是略有不同。

可以修复链接共享的解决方案要求您对URL进行更多控制。特别是不适用于所有人的URL,或仅在有限时间内工作的URL。

看看你的约束我会得出结论:不,你不能(而且这可能不是什么大问题。)

答案 2 :(得分:0)

其他答案很重要,应予以考虑。这是一种做你要求的方法。

PHP脚本(content_loader.php)

$links = array(
   0 => "http://www.example.com/link1.html",
   1 => "http://www.example.com/link2.html",
   // Add as many links as you want here...
);

if (isset($_GET['id'])) {
   $id = $_GET['id'];
   $content = file_get_contents($links[$id]);
   echo $content;
}

的iFrame

<iframe src="content_loader.php?id=1"></iframe>

请注意iframe中网址的格式。您可以根据需要指定任何ID,并显示相应的URL。