Nginx配置origin限制跨域請求的詳細(xì)過程
按照等保要求,跨域的不安全性,需要修復(fù)。
這個需要根據(jù)客戶端傳遞的請求頭中的Origin值,進行安全的跨站策略配置,目的是對非法的origin直接返回403錯誤頁面。
漏洞復(fù)現(xiàn)
復(fù)現(xiàn)方式為在 Header 中指定 Origin 請求頭,看是否可以請求成功。
能夠請求成功,說明未對請求頭進行控制,有漏洞。
curl-H'Origin:http://test.com'http://192.168.15.32:80
修復(fù)辦法
在http中定義一個通過map指令,定義跨域規(guī)則并返回是否合法
http { ... // 再白名單里邊返回0,不在返回1 map $http_origin $allow_cors { default 1; "~^https?://.*?\.tripwolf\.com.*$" 1; "~^(https?://(dmp.finerice.cn)?)$" 1; "~*" 0; } server { # 指定允許其他域名訪問 add_header Access-Control-Allow-Origin $http_origin; # 允許的請求類型 add_header Access-Control-Allow-Methods GET,POST,OPTIONS; # 許的請求頭字段 add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"; location / { # 進行請求攔截 if ($allow_cors = 0){ return 403; } root /mnt/data; } } }
驗證方法
通過POSTMAN進行請求模擬,配置不同的Origin,查看返回結(jié)果。
如果不需要跨域,則直接清理掉add_headerAccess-Control-Allow-Origin等相關(guān)配置,就不這么復(fù)雜了。
到此這篇關(guān)于Nginx配置origin限制跨域請求的文章就介紹到這了,更多相關(guān)Nginx限制跨域請求內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
18個運維必知的Nginx代理緩存配置技巧(你都掌握了哪些呢)
這篇文章主要介紹了18個運維必知的Nginx代理緩存配置技巧(你都掌握了哪些呢),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09