第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

防止直接訪問由ajax函數(shù)調(diào)用的文件

防止直接訪問由ajax函數(shù)調(diào)用的文件

PHP
一只斗牛犬 2019-08-19 10:31:35
防止直接訪問由ajax函數(shù)調(diào)用的文件我從這樣的ajax調(diào)用php代碼:ajaxRequest.open("GET", "func.php" + queryString, true);由于這是一個獲取請求,任何人都可以通過簡單地檢查標(biāo)題來看到它。傳遞的數(shù)據(jù)不敏感,但可能會被濫用,因為獲取參數(shù)名稱也很簡單。如何阻止直接訪問http://mysite/func.php但允許我的ajax頁面訪問它?此外,我已嘗試在此處發(fā)布的解決方案,但它對我不起作用 - 始終獲得“直接訪問未提交”消息。
查看完整描述

3 回答

?
慕后森

TA貢獻1802條經(jīng)驗 獲得超5個贊

大多數(shù)Ajax請求/框架應(yīng)該設(shè)置此特定標(biāo)頭,您可以使用它來過濾Ajax v非Ajax請求。我用它來幫助確定大量項目中的響應(yīng)類型(json / html):

if( isset( $_SERVER['HTTP_X_REQUESTED_WITH'] ) && ( $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' ) ){
    // allow access....} else {
    // ignore....}

編輯:您可以在自己的Ajax請求中自己添加它,并在javascript代碼中添加以下內(nèi)容:

var xhrobj = new XMLHttpRequest();xhrobj.setRequestHeader("X-Requested-With", "XMLHttpRequest");


查看完整回答
反對 回復(fù) 2019-08-19
?
千巷貓影

TA貢獻1829條經(jīng)驗 獲得超7個贊

我使用的是:PHP會話+每次執(zhí)行請求時發(fā)送的哈希。使用服務(wù)器端的某些算法生成此哈希


查看完整回答
反對 回復(fù) 2019-08-19
?
楊__羊羊

TA貢獻1943條經(jīng)驗 獲得超7個贊

這個帖子中建議查看標(biāo)題的任何人在某種程度上都是錯誤的。請求中的任何內(nèi)容(HTTP_REFERER,HTTP_X_REQUESTED_WITH)都可能被不完全無能的攻擊者欺騙,包括共享機密[1]。

您無法阻止人們向您的網(wǎng)站發(fā)出HTTP請求。您要做的是確保用戶在通過會話cookie向網(wǎng)站的某些敏感部分發(fā)出請求之前必須進行身份驗證。如果用戶發(fā)出未經(jīng)身份驗證的請求,請在此處停止并為其提供HTTP 403。

您的示例發(fā)出GET請求,因此我猜您關(guān)注請求的資源要求[2]。您可以對.htaccess規(guī)則中的HTTP_REFERER或HTTP_X_REQUESTED_WITH標(biāo)頭執(zhí)行一些簡單的完整性檢查,以阻止針對明顯虛假請求(或不會收聽robots.txt的愚蠢搜索爬蟲)生成新進程,但如果攻擊者偽造那些,你要確保你的PHP進程盡早退出非經(jīng)過身份驗證的請求。

[1]這是客戶端/服務(wù)器應(yīng)用程序的基本問題之一。這就是為什么它不起作用:假設(shè)您有一種方法讓您的客戶端應(yīng)用程序向服務(wù)器驗證自己 - 無論是密碼還是其他方法。應(yīng)用程序所需的信息必須是應(yīng)用程序可訪問的(密碼隱藏在某處,或其他任何地方)。但是因為它在用戶的計算機上運行,這意味著他們也可以訪問這些信息:他們所需要的只是查看源,二進制或應(yīng)用程序與服務(wù)器之間的網(wǎng)絡(luò)流量,最終他們會弄明白您的應(yīng)用程序進行身份驗證和復(fù)制的機制。也許他們甚至?xí)?fù)制它。也許他們會寫一個聰明的黑客來讓你的應(yīng)用程序做繁重的工作(你總是可以向用戶發(fā)送虛假的用戶輸入)。

[2]精心設(shè)計的應(yīng)用程序中的GET請求沒有副作用,因此沒有人制作它們將能夠在服務(wù)器上進行更改。您的POST請求應(yīng)始終使用session plus CSRF令牌進行身份驗證,以便只有經(jīng)過身份驗證的用戶才能調(diào)用它們。如果有人對此進行攻擊,則表示他們擁有您的帳戶,并且您想要關(guān)閉該帳戶。


查看完整回答
反對 回復(fù) 2019-08-19
  • 3 回答
  • 0 關(guān)注
  • 532 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號