溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

jquery的安全漏洞有哪些

發(fā)布時(shí)間:2022-03-05 10:28:08 來源:億速云 閱讀:575 作者:iii 欄目:web開發(fā)

這篇“jquery的安全漏洞有哪些”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“jquery的安全漏洞有哪些”文章吧。

  1.檢查ORIGIN標(biāo)頭

  根據(jù)OWASP的指定,這還不夠,但建議:

  盡管從您自己的瀏覽器中欺騙任何標(biāo)頭很簡(jiǎn)單,但除非通過XSS漏洞,否則在CSRF攻擊中通常是不可能的。這就是為什么檢查標(biāo)頭是CSRF防御中合理的第一步,但是由于它們并不總是存在,因此通常不能單獨(dú)考慮將其視為足夠的防御。

  Origin標(biāo)頭被認(rèn)為有助于防止JSON數(shù)據(jù)盜用和CSRF攻擊。Origin提供的信息(一些上下文請(qǐng)求創(chuàng)建信息)應(yīng)向Web服務(wù)器提供有關(guān)請(qǐng)求可信度的提示[…]

  檢查HTTP_ORIGIN標(biāo)題可以寫成:

  header('Content-Type: application/json');

  if (isset($_SERVER['HTTP_ORIGIN'])) {

  $address='http://' . $_SERVER['SERVER_NAME'];

  if (strpos($address, $_SERVER['HTTP_ORIGIN']) !==0) {

  exit(json_encode([

  'error'=> 'Invalid Origin header: ' . $_SERVER['HTTP_ORIGIN']

  ]));

  }

  } else {

  exit(json_encode(['error'=> 'No Origin header']));

  }

  1.(之二)檢查REFERER標(biāo)頭

  如果沒有Origin頭

  ,請(qǐng)確認(rèn)Referer頭中的主機(jī)名與站點(diǎn)的來源匹配。檢查引薦是防止嵌入式網(wǎng)絡(luò)設(shè)備上CSRF的一種常用方法,因?yàn)樗恍枰總€(gè)用戶狀態(tài)。。這種CSRF緩解方法也常用于未經(jīng)身份驗(yàn)證的請(qǐng)求[…]

  使用來檢查,HTTP_REFERER在PHP中也非常簡(jiǎn)單$_SERVER['HTTP_REFERER'],您可以使用來更新上面的代碼。

  請(qǐng)務(wù)必 始終進(jìn)行真正的檢查:不要只檢查 example.com 或 _api.example.com,而不要檢查完整的

  _api.example.com.hacker.com之 類的來源來欺騙此檢查。

  2.生成CSRF令牌

  簡(jiǎn)而言之,已經(jīng)給出了一個(gè)專門針對(duì)PHP的解釋清楚的答案:

  生成令牌:

  session_start();

  if (empty($_SESSION['csrf_token'])) {

  $_SESSION['csrf_token']=bin2hex(random_bytes(32));

  }

  通過meta(例如Github)將其添加到生成的視圖中:

  設(shè)置jQuery ajax調(diào)用以包含此令牌:

  $.ajaxSetup({

  headers : {

  'CsrfToken': $('meta[name="csrf-token"]')。attr('content')

  }

  });

  服務(wù)器端檢查您的AJAX請(qǐng)求:

  session_start();

  if (empty($_SESSION['csrf_token'])) {

  $_SESSION['csrf_token']=bin2hex(random_bytes(32));

  }

  header('Content-Type: application/json');

  $headers=apache_request_headers();

  if (isset($headers['CsrfToken'])) {

  if ($headers['CsrfToken'] !==$_SESSION['csrf_token']) {

  exit(json_encode(['error'=> 'Wrong CSRF token.']));

  }

  } else {

  exit(json_encode(['error'=> 'No CSRF token.']));

  }

  大多數(shù)PHP框架都有自己的CSRF實(shí)現(xiàn),或多或少都基于相同的原理。

以上就是關(guān)于“jquery的安全漏洞有哪些”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI