這篇“jquery的安全漏洞有哪些”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“jquery的安全漏洞有哪些”文章吧。
公司主營業(yè)務(wù):成都做網(wǎng)站、網(wǎng)站設(shè)計、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出無為免費做網(wǎng)站回饋大家。
1.檢查ORIGIN標(biāo)頭
根據(jù)OWASP的指定,這還不夠,但建議:
盡管從您自己的瀏覽器中欺騙任何標(biāo)頭很簡單,但除非通過XSS漏洞,否則在CSRF攻擊中通常是不可能的。這就是為什么檢查標(biāo)頭是CSRF防御中合理的第一步,但是由于它們并不總是存在,因此通常不能單獨考慮將其視為足夠的防御。
Origin標(biāo)頭被認(rèn)為有助于防止JSON數(shù)據(jù)盜用和CSRF攻擊。Origin提供的信息(一些上下文請求創(chuàng)建信息)應(yīng)向Web服務(wù)器提供有關(guān)請求可信度的提示[…]
檢查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頭
,請確認(rèn)Referer頭中的主機(jī)名與站點的來源匹配。檢查引薦是防止嵌入式網(wǎng)絡(luò)設(shè)備上CSRF的一種常用方法,因為它不需要每個用戶狀態(tài)。。這種CSRF緩解方法也常用于未經(jīng)身份驗證的請求[…]
使用來檢查,HTTP_REFERER在PHP中也非常簡單$_SERVER['HTTP_REFERER'],您可以使用來更新上面的代碼。
請務(wù)必 始終進(jìn)行真正的檢查:不要只檢查 example.com 或 _api.example.com,而不要檢查完整的
_api.example.com.hacker.com之 類的來源來欺騙此檢查。
2.生成CSRF令牌
簡而言之,已經(jīng)給出了一個專門針對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請求:
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實現(xiàn),或多或少都基于相同的原理。
以上就是關(guān)于“jquery的安全漏洞有哪些”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。