[英]Allow window.location but prevent direct access to a PHP file
我有一個名為script.php的腳本文件,可以通過“ Window.location ”命令從另一個名為main.php的 php文件中訪問該腳本文件。 我想防止直接訪問文件,即沒有人可以在URL欄中鍵入script.php並查看文件的內容。 但是我希望我的main.php能夠使用window.location重定向到script.php。 有什么辦法嗎?
我試過使用Debug Backtrace和preg_match(),但它們也阻塞了main.php的window.location。 有什么辦法解決這個問題?
我不太確定您想做什么以及為什么要做。 沒有辦法只允許腳本打開URL,因為瀏覽器會處理它。
通常,如果允許用戶使用文件,則應自己檢查文件。 因此,您必須為您找到一個邏輯,即如果用戶應該看到腳本,如何告訴您腳本。 否則,您可以執行其他操作,例如顯示錯誤或將其重定向回main.php
。
只是一些簡單的想法...
想法1.)如果可能,您可以在main.php
include()
script.php
並通過.htaccess
阻止直接訪問。 然后,您不需要重定向,而且沒有人可以直接訪問它。
想法2)在main.php
設置一個會話變量,例如$_SESSION["allow"] = true;
然后在script.php
再次檢查。 然后將值設置為false
,因此下一次調用將失敗。
想法3.)在文件調用中添加一個參數,例如script.php?allow=true
。 但是在這種情況下,所有知道該參數的用戶都可以調用它。
想法4.)將自定義參數添加到重定向中,這僅在給定時間內有效。 簡單來說,類似於php time()
。 檢查參數是否在短時間內。 但是在這種情況下,必須在main.php
文件啟動重定向時生成重定向URL。 否則,該請求可能已經過時。
這就是我的想法。 希望有什么能給您提示如何做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.