我有一个Android应用程序,可以从我的专用服务器上传和下载图片。然而,在我运行之前,我想知道是否有什么方法可以保护服务器,只允许我的应用程序访问和查看它上的文件。该应用程序当前通过URL从服务器获取文件。这些文件是敏感的,我不希望它们对所有人都是可见的。
有什么方法可以在服务器上的目录上设置用户名和密码锁吗?如果有,我如何允许我的Android应用程序打开这些目录。
发布于 2015-07-26 20:46:59
你在问两个问题(我在转述你.)
我只能允许我的应用程序访问我的服务器吗?
不,这不可能。你不能控制客户端。根电话。启动调试器。把钥匙拿来。用你的钥匙创建自己的应用程序。
如何保护我的服务器?
为您的应用服务器使用安全框架。例如,如果您正在使用Java,则可以使用Security来处理身份验证和授权。
发布于 2016-09-10 23:50:05
“我能否只允许我的应用程序访问我的服务器?”
是的,可以限制对客户端的访问。当时我还不知道这一点,但是可以控制谁可以使用HTTP/HTTPS报头身份验证来访问存储在服务器上的文件,这需要在请求头中组合一个base64编码的“用户名:密码”来获取文件(HTML、图像等)。
为了防止头嗅探,Milen关于使用HTTPS证书的建议是可行的,因为HTTPS使用站点的公钥(包括报头)加密所有内容。
在Android方面,构建一个应用程序,在每次需要获取文档/图像/文件时发送唯一的用户名和密码。
在服务器端,使用Python或任何您使用的(比使用.htaccess限制对apache上的文件的访问更方便)设置服务器脚本,base64从请求中解码用户名和密码,检查是否匹配,发送正确的内容类型标头和文件。
希望无论谁需要这些信息都是足够的。虽然我最后没有测试这个,但希望它能正常工作。
这里没有任何其他答案是正确的,但我想我每个人都在某种程度上为找到这个问题的解决方案做出了贡献。
发布于 2015-07-26 07:57:22
通过HTTPS将您的用户名和密码从应用程序传递给服务器,并将密码的哈希与存储在服务器上的哈希与该用户名进行比较。遵循“通常”的预防措施:
然后,您可以返回一个时间有限的会话令牌,或者只需要在每个应用程序到服务器消息时使用用户名/密码对。
这些都是经过尝试和测试的管理此过程的方法。
https://security.stackexchange.com/questions/94938
复制相似问题