拒绝从浏览器访问公共php但允许应用程序使用

时间:2013-04-06 20:15:59

标签: php security redirect browser header

大家好,请帮助无知。我已经高低搜索找到了解决方案,但它似乎已经避开了我。

我最近在我的主机上的public html文件夹中设置了一个包含read all脚本的php文件。 db_config和db_connect以及任何更敏感的文件都被隐藏起来,因此无法直接访问。

我需要阻止或至少减慢普通Joe在浏览器中运行我读取所有脚本的速度,显然,收集这样一个数据库所花费的时间已经变得有些宝贵并且不愿意让某人拥有它太容易免费了。

移动应用程序需要可以访问php才能执行,所以不幸的是必须留在公共目录中(除非你不知道吗?)

你能指出我正确的方向吗?

标题重定向似乎是唯一可用的选项。我必须承认在脚本上有点困惑。

尽管我爱一个人只是给我一个剧本,但有趣的是你自己不去学习:)

感谢您抽出宝贵时间阅读和回复。

2 个答案:

答案 0 :(得分:0)

我会在这个答案中忽略CHMOD:

这不是最好的解决方案,但是一种易于维护的保护文件的方法是使用HTACCESS阻止公众访问它(如果可以的话)。使用像其他答案之一的标记也很好,也是一种合法的方式,但HTACCESS会禁止脚本甚至在第一时间运行。

<files myfile.php>
order allow,deny
deny from all
</files>

编辑:刚看到你提到了JSON,所以在这种情况下忽略上面的内容(我不熟悉JSON,但我认为它不会起作用)。

这个解决方案也不完美,但它可以帮助一点: PHP check whether Incoming Request is JSON type

您可以检测传入的请求是否来自JSON,然后忽略它是否为。

答案 1 :(得分:-1)

据我了解,您的应用需要使用它,但不是网络上的任何人,对吧?你可以做一些事情。

首先,您的应用可以使用&verified=1之类的查询字符串请求页面,除非传递$ _GET变量,否则脚本将无效。喜欢

if(isset($_GET['verified'])){ 
//show code
}
else
{
//not today average joe
}

你也可以将它放在像“sjdvjhb_kdfjgvkedn”这样的秘密目录中