php配置cors跨域漏洞怎么修复,CORS跨域漏洞的简单认识
CORS
CORS(Cross-origin resource sharing),又稱跨域資源共享。CORS的內(nèi)容不敘述,可以閱讀MDN文檔。或者,閱讀這篇文章:跨域資源共享 CORS 詳解,同時還需要了解同源策略。CORS是一種實(shí)現(xiàn)ajax跨域加載資源的機(jī)制,如果CORS配置不當(dāng),就可能出現(xiàn)安全問題。是否存在安全問題,需要關(guān)注的響應(yīng)頭是:Access-Control-Allow-Origin,它確定了可以訪問頁面的來源。
BWAPP的CORS測試
low級別
1、主頁面,點(diǎn)擊 secret 跳轉(zhuǎn)頁面。
image
2、假設(shè)這是用戶的頁面,攻擊者的目的是盜取里面的sercet內(nèi)容。查看請求這個頁面時的HTTP響應(yīng)頭,從Access-Control-Allow-Origin頭可以看出服務(wù)器配置了CORS," * "表示所有的源服務(wù)器都可以加載這個頁面上的資源。既然如此,攻擊者直接發(fā)送一個自己構(gòu)造的頁面鏈接給用戶,用戶點(diǎn)擊后,攻擊頁面使用ajax就可以直接讀取另一個網(wǎng)站的敏感信息。
網(wǎng)站頁面
HTTP響應(yīng)頭
window.onload = function(){
var xhr =new XMLHttpRequest(); // 創(chuàng)建AJAX的對象
// 設(shè)置使用的請求方式
xhr.open('get','http://192.168.253.132/bwapp/bwapp/secret-cors-1.php' ,true);
xhr.send(); // 發(fā)送請求
xhr.onreadystatechange=function(){
if(xhr.readyState === 4 ){ // 狀態(tài) 4 表示服務(wù)器已響應(yīng)
// 判斷正常的響應(yīng)結(jié)果的狀態(tài)碼
if(xhr.status >=200 && xhr.status<300 || xhr.status === 304){
console.log(xhr.responseText); // 獲取響應(yīng)體內(nèi)容
}else{
console.log('0');
}
}
}
}
4、用戶點(diǎn)擊這個鏈接,加載test.html頁面,里面的js代碼就會執(zhí)行,然后發(fā)送請求,處理響應(yīng)結(jié)果??梢钥吹?#xff0c;控制臺輸出的信息就是另一個網(wǎng)站的頁面信息。
攻擊者服務(wù)器上的頁面
總結(jié)
以上是生活随笔為你收集整理的php配置cors跨域漏洞怎么修复,CORS跨域漏洞的简单认识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 买美系车还是买日系车,哪个比较安全?
- 下一篇: 2016款东风风神高配版叫什么名字?