我在亚马逊AWS帐户上有一个HTML文件,我正在一个名为Moodle的学习环境中以iFrame的形式链接到该文件。由于这些人已经付费访问了这些课程材料,我一直在试图弄清楚是否有可能使这个文件只能从moodle中的iFrame访问(即,有人无法在源代码中查找url并与未注册课程的人共享)。我知道php中一定有我可以写的东西,但我对它还很陌生。它不一定是1337防黑客的,基本上足够的安全性来阻止你的普通电脑用户。希望在这里得到一些建议!提前感谢!
其他答案很重要,应该加以考虑。不过,这里有一种方法可以满足您的要求。
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中url的格式。您可以根据需要指定任何id,并显示相应的URL。
您可以将文件存储在本地(与Moodle安装相同的服务器),检查是否设置了某个SESSION变量,并显示文件:
<?php
if (!isset($_SESSION['user_id']) || empty($_SESSION['user_id'])) {
die('not authorized');
}
// else, the file is displayed
?>
你甚至可以将页面上传到Moodle(或者打印成PDF并上传),但我已经有一段时间没有在Moodle中做任何事情了。
您要防止的是人们共享到材料的链接。假设你可以防止这种情况发生。是什么阻止了我订阅、获取材料并用U盘将其交给我的朋友?
隐藏链接会让人们更难分享,但我只能说是勉强如此。
可以补救链接共享的解决方案要求您对URL有更多的控制权。特别是那些不适用于所有人的URL,或者只适用于有限时间的URL。
看看你的限制,我会得出结论:不,你不能(这可能不是什么大不了的)。