同源策略:同源策略/SOP(Sameoriginpolicy)是一類承諾,由Netscape公司1995年引進(jìn)電腦瀏覽器,這是電腦瀏覽器最關(guān)鍵也最基本安全配置,如今全部適用JavaScript瀏覽器都是會(huì)使用這種對(duì)策。假如缺乏了同源策略,電腦瀏覽器很容易受XSS、CSFR等進(jìn)攻。
同宗就是指"協(xié)議書+網(wǎng)站域名+服務(wù)器端口"三個(gè)同樣,就算兩種不同的域名跳轉(zhuǎn)相同ip詳細(xì)地址,也不是同宗。
源便是協(xié)議書、網(wǎng)站域名和服務(wù)器端口。
協(xié)議書:http,https
跨域請(qǐng)求:前面要求URL的協(xié)議書、網(wǎng)站域名、服務(wù)器端口與前端界面URL不一樣便是跨域請(qǐng)求
在Django中處理跨域問題
一、
#1、安裝第三方庫django-cors-headers #2、在settings.py中添加'corsheaders.middleware.CorsMiddleware',在SessionMiddleware和CommonMiddleware的中間 #3、在INSTALLED_APPS里添加“corsheaders” INSTALLED_APPS=[ 'search.apps.SearchConfig', 'data.apps.DataConfig', 'record_data.apps.RecordDataConfig', 'deleted_data.apps.DeletedDataConfig', 'mgmt.apps.MgmtConfig', 'c_test.apps.CTestConfig', 'rest_framework', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'corsheaders',#新增 ] #4、在中間件中添加corsheaders.middleware.CorsMiddleware,django.middleware.common.CommonMiddleware MIDDLEWARE=[ #'utils.middleware.ExceptionMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'corsheaders.middleware.CorsMiddleware',#新增/必須在common中間件上面 'django.middleware.common.CommonMiddleware', #'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] #5、在settings.py底部增加 CORS_ALLOW_CREDENTIALS=True#允許攜帶cookie CORS_ORIGIN_ALLOW_ALL=True#放行所有 CORS_ORIGIN_WHITELIST=('*')#白名單 #CORS_ALLOW_METHODS:字符串列表,允許用哪些HTTP請(qǐng)求方法。 CORS_ALLOW_METHODS=( 'DELETE', 'GET', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'VIEW', ) #CORS_ALLOW_HEADERS:字符串列表,允許使用哪些非標(biāo)準(zhǔn)HTTP請(qǐng)求頭。 CORS_ALLOW_HEADERS=( 'accept', 'accept-encoding', 'authorization', 'content-type', 'dnt', 'origin', 'user-agent', 'x-csrftoken', 'x-requested-with', )
二、
#可以自己注冊(cè)一個(gè)中間件,在中間件process_response方法中對(duì)response進(jìn)行封裝 defprocess_response(self,request,response): response["Content-Type"]="application/json"#響應(yīng)信息的內(nèi)容格式 response["Access-Control-Allow-Origin"]="*"#允許跨域請(qǐng)求的源地址,*表示:允許所有地址 response["Access-Control-Allow-Methods"]="POST,GET,OPTIONS"#允許跨域請(qǐng)求的具體方法 response["Access-Control-Max-Age"]="1000"#用來指定本次預(yù)檢請(qǐng)求的有效期,單位為秒,,在此期間不用發(fā)出另一條預(yù)檢請(qǐng)求。 response["Access-Control-Allow-Headers"]="*" returnresponse
跨域請(qǐng)求進(jìn)行步驟為
1、電腦瀏覽器會(huì)初次先傳送options要求了解后面是不是準(zhǔn)許跨域請(qǐng)求,后面查看授權(quán)管理中是否存在這倆網(wǎng)站域名
2、如果網(wǎng)站域名在授權(quán)管理中即在回應(yīng)結(jié)論中告之電腦瀏覽器準(zhǔn)許跨域請(qǐng)求
3、電腦瀏覽器再次傳送post要求,帶上賬號(hào)登錄數(shù)據(jù)信息到后面,進(jìn)行登錄驗(yàn)證實(shí)際操作
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)韼椭?/p>
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/130275.html
摘要:實(shí)現(xiàn)跨域的原理通過方式請(qǐng)求載入并執(zhí)行一個(gè)文件,相當(dāng)于通過的形式的導(dǎo)入一個(gè)外部的方法語法該函數(shù)是簡寫的函數(shù),等價(jià)于在中,您可以通過使用形式的回調(diào)函數(shù)來加載其他網(wǎng)域的數(shù)據(jù),如。將自動(dòng)替換為正確的函數(shù)名,以執(zhí)行回調(diào)函數(shù)。 更多詳情見http://blog.zhangbing.club/Ja... 最近在項(xiàng)目開發(fā)的過程中遇到一些Javascript 跨域請(qǐng)求的問題,今天抽空對(duì)其進(jìn)行總結(jié)一下,以...
摘要:四傳遞信息給父頁面參考跨域子頁面?zhèn)鹘o父頁面父頁面代碼崔渙測試父頁面參數(shù)中有屬性,就是父窗口發(fā)送過來的數(shù)據(jù)把父窗口發(fā)送過來的數(shù)據(jù)顯示在子窗口中。五簡單分析和安全問題傳送過來的信息如下圖,幾乎包含了所有應(yīng)該有的信息。 背景:由于同源策略存在,javascript的跨域一直都是一個(gè)棘手的問題。父頁面無法直接獲取iframe內(nèi)部的跨域資源;同時(shí),iframe內(nèi)部的跨域資源也無法將信息直接傳遞給...
摘要:在中,在不同的域名下面進(jìn)行數(shù)據(jù)交互,就會(huì)遇到跨域問題,說到跨域首先要從同源說起,瀏覽器為了提供一種安全的運(yùn)行環(huán)境,各個(gè)瀏覽器廠商協(xié)定使用同源策略。在上面說過是不受同源策略限制的,但是出于安全原因,瀏覽器限制從腳本內(nèi)發(fā)起的跨源請(qǐng)求。 對(duì)于前端開發(fā)來說跨域應(yīng)該是最不陌生的問題了,無論是開發(fā)過程中還是在面試過程中都是一個(gè)經(jīng)常遇到的一個(gè)問題,在開發(fā)過程中遇到這個(gè)問題的話一般都是找后端同學(xué)去解決...
摘要:首先遇到的就是跨域問題,但是在攜帶請(qǐng)求過程中出現(xiàn)了服務(wù)端獲取不到情況。瀏覽器將請(qǐng)求分成兩類簡單請(qǐng)求和非簡單請(qǐng)求。而瀏覽器對(duì)這兩種請(qǐng)求的處理是不一樣的。 背景 在一個(gè)前后端分離開發(fā)的項(xiàng)目中,使用SpringSecurity做安全框架,用JWT來實(shí)現(xiàn)權(quán)限管理提升RESTful Api的安全性。首先遇到的就是跨域問題,但是在攜帶jwt請(qǐng)求過程中出現(xiàn)了服務(wù)端獲取不到j(luò)wt情況。 跨域問題 在開...
閱讀 892·2023-01-14 11:38
閱讀 837·2023-01-14 11:04
閱讀 688·2023-01-14 10:48
閱讀 1892·2023-01-14 10:34
閱讀 895·2023-01-14 10:24
閱讀 753·2023-01-14 10:18
閱讀 482·2023-01-14 10:09
閱讀 522·2023-01-14 10:02