如何限制对PHP文件的访问?
我想限制访问我的服务器上的
PHP文件.此
PHP文件从HTTP GET请求获取数据并将其附加到文件.简单.但我不希望执行这个PHP文件,除非从我开发的智能手机应用程序中生成HTTP请求.
我不想单独验证每个用户.我希望我的应用程序,只有我的应用程序能够将请求发送到PHP文件.我不希望人们在浏览器中输入类似形式的请求(http://www.mydomain.com/check.php?string=blahblahblah)并产生同样的影响. 我曾考虑检查HTTP_USER_AGENT或其他变量,但我担心它们也可能很容易被欺骗.我可以在我寻找的应用程序中嵌入一个密钥,但该密钥也可能会受到损害. 下一步是让服务器向我发送一个我正确回应的挑战.或者我甚至可以看看PKI.但是,这是一个相对简单的方法,因为我不是想保护任何有实际价值的东西,只是为了防止轻微的破坏行为. 我想在这里重新发明轮子吗?有没有一种简单,经过验证的方法可以做到这一点? 解决方法
FWIW,这是我能想到的最安全的方法,而不会严重影响性能 – 本质上是RESTful(ish)方式,如果进一步提升它将需要存储在服务器上的多个请求和连接状态信息:
>应用程序和服务器具有相同的硬编码盐字符串,对于移动应用程序的每个后续版本都是唯一的.该字符串必须保密. >检索以下信息: >设备IMEI >将所有这些信息连接在一起,最好在它们之间使用硬编码填充,并生成结果字符串的哈希值. >生成哈希 >服务器现在使用App密钥从数据库中检索该实例的设备IMEI和应用程序版本,并将该信息与硬编码的salt字符串一起用于版本ID和设备发送的附加salt字符串哈希.如果在服务器上生成的哈希与移动设备生成的哈希匹配,则该请求是好的,如果不拒绝它. 为了突破该系统并成功欺骗请求,攻击者需要知道以下内容: >设备IMEI 显然,如果你正在使用移动设备1-3很容易提取,但如果没有逆向工程应用程序就无法找到4和5(对于那些有知识和耐心的人来说,实际上没有什么可以阻止的做它). 中间人攻击基本上是不可能的 – 即使在突破SSL(这是非平凡的,至少可以说)和逆向工程应用程序得到4和5之后,1-3无法在没有对哈希进行蛮力攻击,这非常复杂,平均需要数亿年(见this page,看看我是如何达到这个数字的),特别是如果其中一个是可变长度的 – 应用程序版本字符串很容易. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |