簡體   English   中英

允許window.location但阻止直接訪問PHP文件

[英]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 Backtracepreg_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM