Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使文件仅可由JavaScript和/或Flash读取_Javascript_Flash_Filesystem Access - Fatal编程技术网

使文件仅可由JavaScript和/或Flash读取

使文件仅可由JavaScript和/或Flash读取,javascript,flash,filesystem-access,Javascript,Flash,Filesystem Access,我对web开发有点陌生,所以请原谅我这个略显初级的问题。有人能给我一些关于如何防止在使用JavaScript/Flash小部件显示内容时下载文件的一般性建议吗 基本的困境是使页面小部件可以播放文件,同时阻止直接下载源媒体。然而,由于JavaScript和Flash是浏览器端而不是服务器端,我不确定如何做到这一点 混淆源文件名是另一种选择,但我不确定这样做的好方法是什么。也许在.swf文件中用算法隐藏?不确定如何免疫反向编译。不过swf是 非常感谢。事实上,你不能。有两种类型的下载;正常(直接)和

我对web开发有点陌生,所以请原谅我这个略显初级的问题。有人能给我一些关于如何防止在使用JavaScript/Flash小部件显示内容时下载文件的一般性建议吗

基本的困境是使页面小部件可以播放文件,同时阻止直接下载源媒体。然而,由于JavaScript和Flash是浏览器端而不是服务器端,我不确定如何做到这一点

混淆源文件名是另一种选择,但我不确定这样做的好方法是什么。也许在.swf文件中用算法隐藏?不确定如何免疫反向编译。不过swf是


非常感谢。

事实上,你不能。有两种类型的下载;正常(直接)和通过流媒体传输的一个

我建议您使用直接密码,但同时传递授权密钥

此类URL的示例如下所示:

/download?file=134&auth=A34C56E4FCD3908DA
    ^         ^          ^
    |         |          '- The predefined access token
    |         '- The requested file
    '- Gateway script
不要忘记,您必须将敏感文件存储在文档根目录之外的某个位置

网关脚本如下所示(伪代码):


若您的目的是防止有人窃取您的源代码,那个么您什么也做不了,因为javascript需要通过浏览器下载。您可以将关键代码翻译成某种服务器端语言,并只将其输出传递给brwoser(或flash)。或者尝试一些服务器端javascript引擎

谢谢您查看我的问题。我想网关下载脚本“fileserver”应该是php代码?有没有办法使PHP(或其他服务器端语言)显示为文件?有,可以是PHP,也可以是flash服务器。可以在服务器上执行的任何操作。我不知道你说的“显示为文件”是什么意思。如果你想伪装脚本,你可以使用Apache重写引擎,使用
.htaccess
文件。我正在查看PHP函数,看起来我需要的可能是fpassthru()。基本上,让fpassthru()充当文件服务的中介。啊,对了,这就是你需要的。您也可以使用
readfile()
,但我听说
fpassthru()
效果更好。此外,您还需要创建一个
标题('Content-Type:')以使此工作更好。替换为与您的文件类型关联的文件。非常感谢。我将使用时间敏感的加密令牌,并在页面加载时强制文件开始加载。
if( validate_token( get('auth') ){

    file_id = get('file');
    file_name = get_file_name( file_id );
    data = file_read_all( file_name );

}