您好,登錄后才能下訂單哦!
這篇“jquery的安全漏洞有哪些”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“jquery的安全漏洞有哪些”文章吧。
1.檢查ORIGIN標頭
根據OWASP的指定,這還不夠,但建議:
盡管從您自己的瀏覽器中欺騙任何標頭很簡單,但除非通過XSS漏洞,否則在CSRF攻擊中通常是不可能的。這就是為什么檢查標頭是CSRF防御中合理的第一步,但是由于它們并不總是存在,因此通常不能單獨考慮將其視為足夠的防御。
Origin標頭被認為有助于防止JSON數據盜用和CSRF攻擊。Origin提供的信息(一些上下文請求創建信息)應向Web服務器提供有關請求可信度的提示[…]
檢查HTTP_ORIGIN標題可以寫成:
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標頭
如果沒有Origin頭
,請確認Referer頭中的主機名與站點的來源匹配。檢查引薦是防止嵌入式網絡設備上CSRF的一種常用方法,因為它不需要每個用戶狀態。。這種CSRF緩解方法也常用于未經身份驗證的請求[…]
使用來檢查,HTTP_REFERER在PHP中也非常簡單$_SERVER['HTTP_REFERER'],您可以使用來更新上面的代碼。
請務必 始終進行真正的檢查:不要只檢查 example.com 或 _api.example.com,而不要檢查完整的
_api.example.com.hacker.com之 類的來源來欺騙此檢查。
2.生成CSRF令牌
簡而言之,已經給出了一個專門針對PHP的解釋清楚的答案:
生成令牌:
session_start();
if (empty($_SESSION['csrf_token'])) {
$_SESSION['csrf_token']=bin2hex(random_bytes(32));
}
通過meta(例如Github)將其添加到生成的視圖中:
設置jQuery ajax調用以包含此令牌:
$.ajaxSetup({
headers : {
'CsrfToken': $('meta[name="csrf-token"]')。attr('content')
}
});
服務器端檢查您的AJAX請求:
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.']));
}
大多數PHP框架都有自己的CSRF實現,或多或少都基于相同的原理。
以上就是關于“jquery的安全漏洞有哪些”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。