django-cors

問題

對(duì)于附帶身份憑證的請(qǐng)求 服務(wù)器不得設(shè)置origin為*怨喘,默認(rèn)的ajax請(qǐng)求等,在跨域訪問時(shí)不攜帶身份憑證山涡,可以設(shè)置withCredentials = true這樣會(huì)發(fā)送cookies堤结,這時(shí),服務(wù)器也要對(duì)應(yīng)響應(yīng)Access-Control-Allow-Credentials: true

對(duì)于一般的跨域請(qǐng)求是通過頭部的auth來確認(rèn)用戶身份的鸭丛,不使用cookie竞穷,所以請(qǐng)求時(shí)應(yīng)保證不攜帶cookie,這時(shí)服務(wù)器也不用管身份憑證cookie

django-cors-headers

配置

CORS_ORIGIN_ALLOW_ALL True
允許所有域名

CORS_ORIGIN_WHITELIST
允許的域名列表

CORS_ORIGIN_REGEX_WHITELIST
正則匹配域名

CORS_URLS_REGEX = r'^.*' 對(duì)于URL的限制鳞溉,默認(rèn)是上述的正則 無限制瘾带,可以限制為 CORS_URLS_REGEX = r'^/api/.*' 只能訪問api開頭的URL

CORS_ALLOW_METHODS
允許的請(qǐng)求方法列表

CORS_ALLOW_HEADERS
在請(qǐng)求時(shí)可攜帶的頭部

CORS_EXPOSE_HEADERS
響應(yīng)的頭部 默認(rèn)么有

CORS_PREFLIGHT_MAX_AGE
對(duì)于預(yù)檢請(qǐng)求的過期時(shí)間 默認(rèn)一天之內(nèi)不用再預(yù)檢

CORS_ALLOW_CREDENTIALS
允許在跨域請(qǐng)求中攜帶cookie,默認(rèn)不允許熟菲,帶cookie就可以直接通過session什么的直接進(jìn)行認(rèn)證看政,不需要額外的認(rèn)證頭部了,但對(duì)于django是設(shè)置了csrf校驗(yàn)的抄罕,見下方對(duì)于CSRF的(django2之后帶了SESSION_COOKIE_SAMESITE的設(shè)置允蚣,默認(rèn)為L(zhǎng)ax這樣阻止了session cookie)

CSRF相關(guān)

如果用了cookie認(rèn)證那么會(huì)有CSRF的校驗(yàn),但是django并不能識(shí)別你的相關(guān)設(shè)置呆贿,所以要設(shè)置django中的

CORS_ORIGIN_WHITELIST = [
    'http://read.only.com',
    'http://change.allowed.com',
]
CSRF_TRUSTED_ORIGINS = [
    'change.allowed.com',
]

另有CORS_REPLACE_HTTPS_REFERER嚷兔,因?yàn)樯鲜龅腃SRF_TRUSTED_ORIGINS是在Djano1.9之后引入的,之前版本的用戶需要一個(gè)替代方案做入,這個(gè)設(shè)置會(huì)修改請(qǐng)求的Referer頭部來繞過django的CSRF校驗(yàn)冒晰,需要增加一個(gè)corsheaders.middleware.CorsPostCsrfMiddleware,放在django.middleware.csrf.CsrfViewMiddleware之后竟块,

代碼

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末壶运,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子浪秘,更是在濱河造成了極大的恐慌前弯,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秫逝,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡询枚,警方通過查閱死者的電腦和手機(jī)违帆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來金蜀,“玉大人刷后,你說我怎么就攤上這事的畴。” “怎么了尝胆?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵丧裁,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我含衔,道長(zhǎng)煎娇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任贪染,我火速辦了婚禮缓呛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘杭隙。我一直安慰自己哟绊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布痰憎。 她就那樣靜靜地躺著票髓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪铣耘。 梳的紋絲不亂的頭發(fā)上洽沟,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音涡拘,去河邊找鬼玲躯。 笑死,一個(gè)胖子當(dāng)著我的面吹牛鳄乏,可吹牛的內(nèi)容都是我干的跷车。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼橱野,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼朽缴!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起水援,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤密强,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后蜗元,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體或渤,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年奕扣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了薪鹦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖池磁,靈堂內(nèi)的尸體忽然破棺而出奔害,到底是詐尸還是另有隱情,我是刑警寧澤地熄,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布华临,位于F島的核電站,受9級(jí)特大地震影響端考,放射性物質(zhì)發(fā)生泄漏雅潭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一跛梗、第九天 我趴在偏房一處隱蔽的房頂上張望寻馏。 院中可真熱鬧,春花似錦核偿、人聲如沸诚欠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽轰绵。三九已至,卻和暖如春尼荆,著一層夾襖步出監(jiān)牢的瞬間左腔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工捅儒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留液样,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓巧还,卻偏偏與公主長(zhǎng)得像鞭莽,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子麸祷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 前言: 很早之前就想學(xué)習(xí)了解的一個(gè)漏洞澎怒,雖然實(shí)戰(zhàn)中還沒遇到過,但并不影響我認(rèn)識(shí)它阶牍。 基礎(chǔ)了解: 這里先簡(jiǎn)單介紹下同...
    book4yi閱讀 3,506評(píng)論 1 1
  • CORS 是什么喷面? 跨域資源共享 是一種機(jī)制,它使用額外的頭來告訴瀏覽器 讓運(yùn)行在一個(gè) origin (doma...
    Veycn閱讀 273評(píng)論 0 0
  • 本文來自于公眾號(hào)鏈接: 徹底掌握CORS跨源資源共享 本文接上篇公眾號(hào)文章:徹底理解瀏覽器同源策略SOP 一.概...
    趙召閱讀 422評(píng)論 0 1
  • 這一節(jié)我們將django的后端微信接入部分 涉及到的知識(shí)點(diǎn)有跨域服務(wù)器請(qǐng)求緩存路由配置 首先要?jiǎng)?chuàng)建一個(gè)django...
    ad5fd633dbc7閱讀 288評(píng)論 0 2
  • CSRF & CORS 下面轉(zhuǎn)的兩篇文章分別說明了以下兩個(gè)概念和一些解決方法: 1. CSRF - Cross-S...
    Elvis_zhou閱讀 700評(píng)論 0 4