對於我的網站上的AJAX,我從Javascript文件調用something.php?request = bla。我不希望用戶查看此請求的結果,或者通過輸入www.myurl.com/something.php?request=bla來運行PHP文件。我只希望我的服務器上的文件能夠調用PHP文件。我考慮過很多事情,比如在PHP腳本中進行比較的祕密值,但這聽起來太複雜了,無法滿足我的需求。我確信有一個更簡單的方法。如何僅允許從服務器上的文件調用PHP腳本?
如何讓PHP文件只有在服務器上存在的腳本調用它時才能運行?用戶不應該能夠使用他們的地址欄運行它。
恐怕沒有比生成包含專用AJAX請求的頁面時創建唯一散列更簡單。將散列保存到會話中,並作爲AJAX調用的參數。在PHP腳本調用後,通過將提交的散列值與保存到會話中的散列值進行比較來決定該調用是否是私人的。就像Pekka所說,AJAX請求是客戶端,所以你不能以任何方式控制它。 – 2011-04-26 11:37:37