Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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
Php 如何隐藏/阻止网页浏览中存储的文件,但可从应用程序访问?_Php_Android_.htaccess_Server_Privacy - Fatal编程技术网

Php 如何隐藏/阻止网页浏览中存储的文件,但可从应用程序访问?

Php 如何隐藏/阻止网页浏览中存储的文件,但可从应用程序访问?,php,android,.htaccess,server,privacy,Php,Android,.htaccess,Server,Privacy,我正在开发一个应用程序,在服务器上上传和下载图片/视频,供用户共享(用户将图片发送给他的朋友,然后他们将出现在自己的活动提要上) 我要处理的问题是,所有这些图片都存储在web服务器中,这意味着当我通过web浏览器浏览我的服务器时,它们是可见的,这会导致隐私/安全问题,因为任何键入正确路径的人(即“myserver.com/android/pictures/pic_001.jpg”)都可以看到图片 因此,我想知道是否有可能隐藏/阻止所有这些文件进行web浏览,但使它们仍然可以通过android应用

我正在开发一个应用程序,在服务器上上传和下载图片/视频,供用户共享(用户将图片发送给他的朋友,然后他们将出现在自己的活动提要上)

我要处理的问题是,所有这些图片都存储在web服务器中,这意味着当我通过web浏览器浏览我的服务器时,它们是可见的,这会导致隐私/安全问题,因为任何键入正确路径的人(即“myserver.com/android/pictures/pic_001.jpg”)都可以看到图片


因此,我想知道是否有可能隐藏/阻止所有这些文件进行web浏览,但使它们仍然可以通过android应用程序使用?

是和否。这些文件必须位于某个位置,但是您可以为目录设置htaccess规则(假设为apache)这说明用户代理必须匹配Android客户端发出请求时发送的任何内容(如果不确定,为什么不为Android请求设置自定义用户代理?)


这只会在用户不太了解图像路径的情况下起作用。唯一的另一种选择是在满足API密钥/某些身份验证参数(将文件读入PHP并将适当的头文件和文件内容输出到浏览器)时流式传输图像。虽然这并不理想,但它会起作用(尽管在您的PHP处理器上非常昂贵)

您可以创建一个web服务,然后不用公开包含图片的文件夹,您可以公开web服务,并使用(de)序列化您可以在应用程序中使用它们,而图片不能直接从web服务器获得。

不可能。如果您的应用程序可以访问它们,任何人都可以。您的服务器无法100%可靠地区分“来自android应用程序的http请求”和“来自盗取照片的人的http请求”。这都只是http,而您的应用程序所做的任何事情都不能完全区分小偷也可以。解决这个问题的一个方法就是在应用程序中引入某种形式的身份验证。