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

Table des matières
Referer 的作用" >Referer 的作用
防盜鏈" >防盜鏈
防止惡意請求" >防止惡意請求
高級用法" >高級用法
Referer 丟失" >Referer 丟失
總結下 Referer 丟失的幾種情況" >總結下 Referer 丟失的幾種情況
自動生成URL鏈接HTTPS變HTTP" >自動生成URL鏈接HTTPS變HTTP
Qu'est-ce que Referer" >Qu'est-ce que Referer
??Le r?le du référent" >??Le r?le du référent
??Anti-hotlinking" >??Anti-hotlinking
??Prévenir les requêtes malveillantes" >??Prévenir les requêtes malveillantes
??Utilisation avancée" >??Utilisation avancée
??Le référent est perdu" >??Le référent est perdu
?? Résumez plusieurs situations où le référent est perdu" >?? Résumez plusieurs situations où le référent est perdu
??Générer automatiquement des liens URL de HTTPS vers HTTP" >??Générer automatiquement des liens URL de HTTPS vers HTTP
Maison Applet WeChat Développement WeChat Résumé du problème du Referer manquant (paiement WeChat H5)

Résumé du problème du Referer manquant (paiement WeChat H5)

Aug 16, 2021 am 11:29 AM
referer

Récemment, la société a demandé le paiement H5 de WeChat. Les documents de paiement pertinents peuvent être trouvés ici https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_4 Après avoir lancé le paiement. , il continue de signaler une erreur Le format des paramètres du marchand est incorrect, veuillez contacter le commer?ant pour le résoudre Selon le document officiel WeChat, le message d'erreur devrait être referer manquant. après l'avoir localisé, j'ai découvert que referer était en fait perdu. Documentez le processus de résolution de problèmes. 商家參數(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 了 又搞事情?。。?/p>

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;

HTTP Referer est la requête HTTP pour l'en-tête header information Lorsque le navigateur envoie une requête au serveur Web, il amène généralement un référent pour indiquer au serveur de quelle page je crée un lien, afin que le serveur puisse obtenir des informations à traiter. Par exemple, dans la console du navigateur Chrome, nous pouvons voir des informations similaires aux suivantes sous Request HeadersrrreeeReferer est Cette propriété a

??L'orthographe anglaise correcte deReferer estreferrer. En raison de fautes d'orthographe dans les premières spécifications HTTP, ce fut une erreur de maintenir la compatibilité ascendante?? ??Par exemple, si vous constatez que le référent n'est pas votre propre site, vous pouvez le bloquer????C'est la même chose que ci-dessus????Pour Par exemple, le paiement WeChat H5 l'exige également. Sachez à quoi ils servent (hhh????à propos du problème de Referer étant perdu. Tout d'abord, le referer est fait par Le navigateur du client l'envoie au serveur, et le client peut l'obtenir via document.referrer. l'envoi du référent est en fait un comportement du navigateur, et la décision de l'envoyer ou non est prise par le navigateur. Bien qu'il soit dit cela, le protocole HTTP a des réglementations strictes sur le moment où le navigateur doit l'envoyer. et quand il ne doit pas l'envoyer. ????1 Lorsqu'un site Web utilise le champ d'actualisation pour sauter. , la plupart des navigateurs n'envoient pas de référent????2. D'un utilisateur cliquant sur un lien d'un site Web HTTPS à un autre Lorsqu'un site Web HTTP est utilisé, le référent n'est pas envoyé????3. En html5, le rel de la balise a = ". noreferrer" peut empêcher le navigateur d'envoyer le référent????4. Pour les liens utilisant le schéma URI de données, le navigateur n'enverra pas le référent?? ??5. Utilisez la politique de sécurité du contenu pour empêcher le navigateur d'envoyer des référents????6. Utilisez le balise méta dans l'en-tête HTML pour empêcher le navigateur d'envoyer des référents????Parfois, c'est le cas Il est nécessaire de générer des liens URL dans le projet API pour revenir, mais le serveur a été configuré pour prendre en charge HTTPS. Lors d'un accès via HTTPS, l'URL générée est toujours HTTP?? ??à propos de ce problème, il s'agit en fait de laconfigurationdu serveur. >. Le problème est similaire au suivant ????Retour au problème de paiement WeChat que j'ai rencontré. Après avoir suivi les sauts du navigateur pendant un certain temps, j'ai découvert qu'il s'agissait d'un attribut du site HTTPS. , le site a perdu le Referer [ps : du HTTP vers HTTPS à l'envers, il n'y a pas de problème et le Referer ne sera pas perdu] Il est caché au plus profond du milieu????Bien s?r, je n'ai pas remarqué ce problème au début car il n'y a eu aucun problème depuis la requête frontale vers l'API. Tous les projets ont déployé HTTPS à tous les niveaux, et les informations du référent sont également transmises. Cependant, lorsque l'URL de la demande de paiement WeChat est atteinte lors de la dernière étape, le référent est perdu. .???? Plus tard, j'ai découvert que lors de la demande du projet API, le projet API renvoyait une URL au front-end. Cette URL est Le code back-end est généré selon des règles (fonction d'aide à l'action dans Laravel). cette fonction elle-même, mais le lien URL généré est HTTP, ce qui provoque à nouveau des problèmes?! ! ! ????Le projet API est configuré avec des requêtes HTTPS mais l'URL générée est HTTP. Le problème est là. J'ai demandé de l'aide au frère d'exploitation et de maintenance et j'ai finalement découvert qu'il s'agissait d'un problème configuré dans le proxy inverse Nginx ????nginx. Le fragment de configuration du serveur est le suivant?: ??rrreee??Vous pouvez voir proxy_pass Les paramètres pointent vers le protocole HTTP, donc les URL obtenues en arrière-plan sont toutes des protocoles HTTP. Définissez le proxy sur https://114.114.114.114:443. ; et le problème sera résolu?: "??Tutoriel de développement WeChat??"???????????????????????????????????????????????????????????????????

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276