拒绝访问公共php从浏览器,但允许应用程序使用
大家好,请帮助无知。我高高在上寻找解决办法,但似乎逃避了我。拒绝访问公共php从浏览器,但允许应用程序使用
我最近在我的主机上的公共html文件夹中设置了一个包含全部读取脚本的php文件。 db_config和db_connect以及任何更敏感的文件都很高兴地隐藏起来,因此不可能直接访问。
我需要防止或者至少减慢平均Joe能够在他们的浏览器中运行我的全部读取脚本,显然随着收集这样的数据库所花费的时间,它变得有些有价值,并且会讨厌让某人免费太简单了。
PHP的应该是可访问一个移动应用程序来执行,从而可惜一直留在公共目录(除非你知道,否则?)
能否请您指出我在正确的方向?
标题重定向似乎是唯一可用的选项。我必须承认我在脚本上有些困惑。
多达标识爱一个人就这样给我的脚本,哪来的乐趣自己不是学习它:)
感谢您在百忙之中阅读和回复的时间。
,我会在这个答案忽略文件模式:
这是不是最好的解决办法,但一种易于维护文件的方法是使用HTACCESS阻止公众访问它(如果可以的话)。使用像其他答案中提到的标志也是很好的,也是一种合法的方式,但HTACCESS会禁止脚本甚至在第一时间运行。
<files myfile.php>
order allow,deny
deny from all
</files>
编辑:刚才看到你提到的JSON所以忽略在这种情况下(我不熟悉使用JSON,但我不认为它会工作)以上。
该解决方案也不是完美的,但它可能有点帮助: PHP check whether Incoming Request is JSON type
您可以检测,如果传入的请求是由JSON,然后忽略,如果它不是。
据我所知,您的应用程序需要使用它,但不是网络上的任何人,对吧?你可以做一些事情。
首先,您的应用可以使用查询字符串来请求该页面,例如&verified=1
,除非$ _GET变量被传递,否则该脚本将不起作用。像
if(isset($_GET['verified'])){
//show code
}
else
{
//not today average joe
}
你也可以把它在一个秘密的目录,如“sjdvjhb_kdfjgvkedn”
确实你是对的。这很有道理。所以除非应用程序发送验证脚本不会执行。通过在应用程序中创建一个秘密目录? – mynight 2013-04-06 20:27:35
所有代码所在的服务器上的秘密目录。第一种解决方案更好,但 – 2013-04-06 20:45:27
有趣。在这种情况下,除了Json请求之外,是否可以拒绝所有的情况? – mynight 2013-04-06 20:32:40
啊,没有意识到JSON被卷入。我不认为HTACCESS会在这种情况下起作用。尽管我稍微修改了我的答案。查看JSON提示。 – Mike 2013-04-06 20:48:18
对不起,我似乎没有提到原始问题中的JSON,表示歉意。 – mynight 2013-04-06 20:50:45