2013-04-06 52 views
2

大家好,請幫助無知。我高高在上尋找解決辦法,但似乎逃避了我。拒絕訪問公共php從瀏覽器,但允許應用程序使用

我最近在我的主機上的公共html文件夾中設置了一個包含全部讀取腳本的php文件。 db_config和db_connect以及任何更敏感的文件都很高興地隱藏起來,因此不可能直接訪問。

我需要防止或者至少減慢平均Joe能夠在他們的瀏覽器中運行我的全部讀取腳本,顯然隨着收集這樣的數據庫所花費的時間,它變得有些有價值,並且會討厭讓某人免費太簡單了。

PHP的應該是可訪問一個移動應用程序來執行,從而可惜一直留在公共目錄(除非你知道,否則?)

能否請您指出我在正確的方向?

標題重定向似乎是唯一可用的選項。我必須承認我在腳本上有些困惑。

多達標識愛一個人就這樣給我的腳本,哪來的樂趣自己不是學習它:)

感謝您在百忙之中閱讀和回覆的時間。

回答

0

,我會在這個答案忽略文件模式:

這是不是最好的解決辦法,但一種易於維護文件的方法是使用HTACCESS阻止公衆訪問它(如果可以的話)。使用像其他答案中提到的標誌也是很好的,也是一種合法的方式,但HTACCESS會禁止腳本甚至在第一時間運行。

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

編輯:剛纔看到你提到的JSON所以忽略在這種情況下(我不熟悉使用JSON,但我不認爲它會工作)以上。

該解決方案也不是完美的,但它可能有點幫助: PHP check whether Incoming Request is JSON type

您可以檢測,如果傳入的請求是由JSON,然後忽略,如果它不是。

+0

有趣。在這種情況下,除了Json請求之外,是否可以拒絕所有的情況? – mynight 2013-04-06 20:32:40

+0

啊,沒有意識到JSON被捲入。我不認爲HTACCESS會在這種情況下起作用。儘管我稍微修改了我的答案。查看JSON提示。 – Mike 2013-04-06 20:48:18

+0

對不起,我似乎沒有提到原始問題中的JSON,表示歉意。 – mynight 2013-04-06 20:50:45

-1

據我所知,您的應用程序需要使用它,但不是網絡上的任何人,對吧?你可以做一些事情。

首先,您的應用可以使用查詢字符串來請求該頁面,例如&verified=1,除非$ _GET變量被傳遞,否則該腳本將不起作用。像

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

你也可以把它在一個祕密的目錄,如「sjdvjhb_kdfjgvkedn」

+0

確實你是對的。這很有道理。所以除非應用程序發送驗證腳本不會執行。通過在應用程序中創建一個祕密目錄? – mynight 2013-04-06 20:27:35

+0

所有代碼所在的服務器上的祕密目錄。第一種解決方案更好,但 – 2013-04-06 20:45:27

相關問題