国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
Referer 的作用" >Referer 的作用
防盜鏈" >防盜鏈
防止惡意請求" >防止惡意請求
高級用法" >高級用法
Referer 丟失" >Referer 丟失
總結下 Referer 丟失的幾種情況" >總結下 Referer 丟失的幾種情況
自動生成URL鏈接HTTPS變HTTP" >自動生成URL鏈接HTTPS變HTTP
首頁 微信小程式 微信開發(fā) 總結Referer遺失的問題(微信H5支付)

總結Referer遺失的問題(微信H5支付)

Aug 16, 2021 am 11:29 AM
referer

最近公司申請了微信的H5支付 相關支付文檔見這里 https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_4發(fā)布上線后發(fā)起支付 一直報錯 商家參數(shù)格式有誤,請聯(lián)系商家解決 根據微信官方文檔的錯誤提示 應該是 referer 丟失的問題 于是定位一通發(fā)現(xiàn)還真是 referer 丟失了 記錄下解決問題過程。

Referer 是什么

HTTP Referer是 HTTP 請求 header 頭信息的一部分 當瀏覽器向web服務器發(fā)送請求的時候,一般會帶上Referer

告訴服務器我是從哪個頁面鏈接過來的,服務器藉此可以獲得一些信息用于處理。

比如我們在 Chrome 瀏覽器的控制臺下 可以看到 Request Headers 下有類似如下的信息

Provisional headers are shown
Accept: 
/
Origin: local.test5.show
Referer: local.test5.show/test/show
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36

其中 Referer 就是該屬性了

Referer 的正確英語拼法是 referrer。由于早期 HTTP 規(guī)范的拼寫錯誤,為了保持向后兼容就將錯就錯了

比如你發(fā)現(xiàn)訪問加載自己的資源 而 referer不是自己的站點 就可以屏蔽它

這點同上

比如微信H5支付 也需要這個 就不知道他們做啥用了(hhh

關于 Referer 丟失的問題 首先 referer 是由客戶端的瀏覽器發(fā)送到服務器上,且在客戶端可以通過 document.referrer 來獲取,也就是說referer的發(fā)送實際上是一個瀏覽器行為,發(fā)送與否的決定權是在瀏覽器手里。雖然這樣說,但是HTTP協(xié)議對什么情況下,瀏覽器該發(fā)送,什么情況下不該發(fā)送有著嚴格的規(guī)定。

1.當網站使用refresh字段進行跳轉的時候,大多數(shù)瀏覽器不發(fā)送referer

2.從用戶從一個HTTPS的網站點擊鏈接到另一個HTTP的網站時,不發(fā)送referer

3.html5中,a標簽的rel = “noreferrer”, 可以讓瀏覽器不發(fā)送referer

4.使用Data URI scheme鏈接的,瀏覽器也不發(fā)送referer

5.使用Content Security Policy, 也可以讓瀏覽器不發(fā)送referer

6.在html頭部中使用meta標簽來控制不讓瀏覽器發(fā)送referer

有時候需要在API項目中生成一些URL鏈接返回 但是服務器端已經配置了支持HTTPS,通過HTTPS訪問的時候生成的URL仍然是HTTP

關于這個問題其實是服務器 配置 問題 和 下面類似

回到我遇到的微信支付問題 跟蹤了一圈瀏覽器的跳轉之后發(fā)現(xiàn)是屬性第二種情況 從 HTTPS 站點跳到 HTTP 站點 丟失了 Referer【ps:反過來從HTTP到HTTPS是沒問題的 不會丟失 Referer】 中間藏的比較深

當然我一開始沒有發(fā)現(xiàn)這個問題 因為從前端請求到 API 整個都沒有問題 全部項目已經全線部署了 HTTPS , Referer 信息也有攜帶 然后到最后一步微信的支付請求URL的時候 Referer 就丟失了.

后面發(fā)現(xiàn)在請求到API項目的時候 API項目返回了一個 URL 給前端 這個 URL 是后端代碼根據規(guī)則生成的(Laravel 里的 action 輔助函數(shù)) 這個函數(shù)本身并沒有什么問題 但是生成的URL鏈接 是 HTTP 了 又搞事情?。?!

API項目配置的是 HTTPS 請求 但是生成的URL是 HTTP 問題就是這里了 請求運維哥協(xié)助 最后發(fā)現(xiàn)是 Nginx 反向代理中配置的問題

nginx服務器配置片段如下:

location / {
    proxy_pass http://114.114.114.114:80;
  }

可以看到 proxy_pass 參數(shù) 指向的是 HTTP的協(xié)議 所以在 后臺獲取的 URL 都是HTTP協(xié)議的

把代理這設置成 https://114.114.114.114:443; 即可 問題終解決

?推薦:《微信開發(fā)教程? ? ? ? ? ? ? ? ? ? ? ? ? ??

以上是總結Referer遺失的問題(微信H5支付)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權的內容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)