我有一個頁面使用jQuery在另一個頁面中加載。我想知道的是,如果有可能以某種方式阻止直接訪問在另一個頁面中加載的頁面。防止.php文件被加載到jQuery請求頁面外
回答
你可以嘗試添加一些魔術價值,你的get/post或cookie。然後在頁面開始處檢查該值,並在缺失頁面時返回一些錯誤頁面。
但是,這不會阻止某些用戶做到這一點。如果他們調試您的請求,例如使用Firebug,那麼他們可以使用該幻數來複制請求。
你不能阻止它100% - 來自jQuery的請求是正常的瀏覽器請求,所以你可以做的最多的事情是阻止外部鏈接和偶然訪問(有人誰去麻煩完全複製HTTP請求仍然會能夠打開頁面;這是沒有辦法的)。
您可以通過檢查HTTP「referer」標頭並確保引用頁面是您的來停止外部鏈接。
您還可以通過檢查標頭「X-Requested-With」來檢查特定請求是否來自jQuery與瀏覽器 - jQuery添加此標頭並使用值「XMLHttpRequest」填充該標頭;一個普通的瀏覽器請求不會有這個頭。
你也可以使用cookies建立一個驗證系統,過期的令牌必須是請求的一部分,等等。但是這是更多的工作和(我認爲)矯枉過正 - 如果有人決定直接訪問頁面並可以繞過HTTP頭過濾,他們也可以找出你的令牌。
從類似discussion
報價Eran Galperin正如其他人所說,Ajax請求可以被 要創建適當的 頭效仿。如果你想有一個基本的 檢查,以查看該請求是否是一個Ajax請求 你可以使用:
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') { //Request identified as ajax request }
但是你永遠不應該在這個基礎檢查您的 安全。如果您需要, 將消除直接訪問頁面 。
請把此答案由Jeremy Ruten也考慮到:
沒有低保 他們訪問它通過AJAX的方式。 直接訪問和AJAX訪問 都來自客戶端,因此它很容易被僞造成 。
爲什麼你要這樣做呢?
如果這是因爲PHP代碼不是 非常安全,那麼使PHP代碼更安全可靠 。 (例如,如果您的AJAX 將用戶標識傳遞給PHP文件,則 會在PHP文件中編寫代碼以確定 確定這是正確的用戶標識。)
上面鏈接的討論中更聰明的想法。
- 1. 的Javascript ::防止當頁面被加載
- 2. 防止包含HTM頁被加載的父PHP頁面
- 3. 長時間運行ajax請求,防止頁面重新加載
- 4. javascript - 防止頁面加載
- 5. 防止加載頁面
- 6. 防止jQuery函數在頁面加載時被多次調用
- 7. 如何防止加載一個沒有請求的頁面的PHP
- 8. 防止* .php文件被直接加載到瀏覽器中
- 9. 是否可以防止頁面加載時加載php代碼?
- 10. 防止將PHP頁面加載到Joomla包裝中
- 11. 使用PHP變量和jQuery的/ Ajax頁面加載請求
- 12. 如何防止查詢被加載到整個頁面加載css?
- 13. Ajax請求到php頁面
- 14. 防止假循環Ajax請求到PHP
- 15. 防止spammy XMLHTTP請求到php
- 16. 加載外部請求文件
- 17. 防止PHP文件下載
- 18. PHP文件下載防止
- 19. PHP防止PHP頁面
- 20. 防止加載禁用js的頁面
- 21. 如何防止頁面加載滾動
- 22. htaccess防止直接頁面加載
- 23. 基本認證防止頁面加載
- 24. 防止滾動頁面重新加載
- 25. 防止在JavaScript中加載頁面?
- 26. 如何防止頁面重新加載?
- 27. 防止頁面重新加載提交
- 28. 防止頁面加載刷新
- 29. 加載時防止頁面閃爍
- 30. 如何防止頁面重新加載