我知道关于这个话题也有类似的帖子,但我想不出来。因为我是这个地区的新手。
www.example.com/sdf3r234/dfsf3434fd368jmnvnbvb34.rar
我的网站已经准备好了,这是最后一部分,也是最具挑战性和最重要的部分。我不知道该读什么或做什么。
发布于 2017-12-12 14:28:13
使用linux符号链接。把你的rar文件放在一个单独的地方,不能从互联网上联系到。在文档根中创建一个符号链接,指向所需的rar文件,添加到数据库表中,包含日期和时间,并在48小时后删除记录和符号链接。
如果您不能/不能使用数据库,请将日期和时间包括在符号链接名称中,并每小时运行一个脚本来清除它们,使用glob()检索符号链接列表,解析文件名中的日期和时间,然后决定要删除哪一个。
关于ln命令:
ln -s /home/myuser/rarstorage/originalrarfile.rar /var/www/download/201712171536randomcharacters.rar我假设您的rar文件存储在/home/myuser/rarstorage中。无法从任何url访问此目录。
我想你的网站是用/var/www的。
ln命令创建一个指向/var/www/download中的originalrarfile.rar的符号链接。在我的示例中,我将日期和时间以yyyymmddhhii格式包含到符号链接名中。
如果您有shell访问权限,请手动尝试此操作。
您可以使用符号链接() PHP命令实现相同的结果。
若要检查下载是否过期,请使用盖布()函数列出所有符号链接。你有一组文件。解析每个名称并转换为日期和时间,与当前日期和时间进行比较,确定是否需要删除符号链接。
你应该每小时检查一次过期的文件,所以如果你的主机不允许cron的话,你最好使用cronjob或者以其他方式模拟它。
如果提供程序不允许文档根目录之外的目录,只需在文档根目录内创建rarstorage目录,并使用此.htaccess文件阻止对其的任何访问:
deny from all发布于 2017-12-12 14:32:04
您可以将过期日期添加到您的URL中,并在PHP中检查它--如果日期是将来的,则提供文件,否则会失败。是的,在这种简单的方法中,攻击者只需篡改数据并更改过期日期。因此,您可以添加另一个URL参数,其中包含一个日期上的安全散列,以及一个仅为您所知的秘密--如果散列丢失或散列,并且您的过期日期与提供的散列不匹配,则不能为该文件提供服务。
这比Ghigo的方法容易一些,因为您不需要数据库
https://stackoverflow.com/questions/47774948
复制相似问题