簡體   English   中英

安全的AJAX div更新

[英]Secure AJAX div update

我是AJAX的新手,如果這是一個愚蠢的問題,請原諒我:

我想用位於受保護的文件夾內的php文件的內容來更新div,因此它只能包含在php文件中,而不能從瀏覽器中獲取。 由於JavaScript是客戶端,這意味着我無法調用它,對吧?

例如,我使用以下代碼(包括jQuery)獲得了index.php:

<script>
$("#content").load("includes/login.php");
</script>

其中#content指的是div。 這可以正常工作,但是由於不應訪問包含項,因此會出現問題。

然后,我想我可以在可訪問區域中放置類似“ wrapper.php”的內容,然后根據您提供的變量來包含特定的php文件。

這是解決此問題的正確方法還是我做錯了?

我認為"wrapper.php"的想法是正確的。 如果要將它用於許多文件,則可以執行以下操作,請檢查它是否為AJAX調用以防止直接加載文件:

// wrapper.php
<?php
// Check if it is AJAX
if (isset($_SERVER['HTTP_X_REQUESTED_WITH'])
AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest') {
    $filename = $_GET['f'];
    include 'includes/'.$filename.'.php';
}

接着:

$("#content").load("wrapper.php?f=login");

但是請小心,因為它可能不安全。

如果您想變得懶惰,則可以通過load加載整個頁面並解析內容以獲取#content

jQuery將按空格分隔參數,並使用第二個元素作為整個頁面內容的選擇器。

$("#content").load("full/path/to/login #content");

不討厭,我說這是一個懶惰的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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