我有一個AJAX函數調用一個PHP腳本並在頁面上顯示結果。AJAX安全幫助
所以,我有兩個頁面,說:
form.php的 - 這是輸入被收集並顯示 process.php - 這是被稱爲從這個結果顯示在表格的PHP .PHP
現在,這裏是我的AJAX功能:
function showList(str)
{
if (str=="")
{
document.getElementById("message").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("message").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","process.php?q="+str,true);
xmlhttp.send();
}
正如你可以清楚地看到從表單收集該值傳遞給process.php如下:
process.php?q = 1
對於每個查詢字符串,都會從數據庫中提取一個列表。同樣的列表也可以通過輸入domain.com/process.php?q=1,2,3等拉入...
我的問題是,我該如何修復這個循環孔,以便來自只有我的腳本的請求才能訪問process.php而沒有其他人?
在此先感謝!
是否有防止Ajax應用程序安全的方法? – 2010-10-13 18:14:29
編號默認情況下,您正在將源代碼(javascript)上傳到瀏覽器。它會發生什麼,你無法控制。 – Gus 2010-10-13 18:18:48
謝謝!上面的Craig Edmunds解決方案似乎更有希望..如果我無法找到PHP CSRF後衛的源代碼,將不得不依賴HTTP_X_REQUESTED_WITH方法 – 2010-10-13 18:27:11