首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果在https中,则无法使用req.get('Referrer')获取完整路径

在HTTPS中,无法使用req.get('Referrer')获取完整路径的原因是HTTPS协议的安全性要求,会对请求头中的Referer字段进行保护,不允许在跨域请求中暴露完整路径信息。

Referer字段是HTTP请求头中的一个字段,用于指示请求的来源页面的URL。在HTTP中,可以通过req.get('Referrer')来获取请求的来源页面的完整路径。但是在HTTPS中,由于安全性的考虑,浏览器会对Referer字段进行限制,只允许暴露来源页面的域名部分,而不包含完整路径信息。

这样设计的目的是为了保护用户的隐私和安全。如果在HTTPS页面中直接暴露完整路径信息,可能会导致敏感信息泄露或被恶意利用。

解决这个问题的方法是使用其他方式来获取完整路径信息,例如可以通过解析URL来获取。在Node.js中,可以使用url模块来解析URL,获取路径信息。具体的代码示例如下:

代码语言:txt
复制
const url = require('url');
const requestUrl = req.protocol + '://' + req.get('host') + req.originalUrl;
const parsedUrl = url.parse(requestUrl);
const fullPath = parsedUrl.protocol + '//' + parsedUrl.host + parsedUrl.pathname;

上述代码中,首先使用req.protocol获取请求的协议,req.get('host')获取请求的主机名,req.originalUrl获取请求的原始路径。然后使用url.parse方法解析URL,获取路径信息。最后拼接协议、主机名和路径,即可得到完整路径信息。

需要注意的是,使用url模块解析URL时,需要注意处理URL中的特殊字符和编码,以确保解析结果的正确性。

推荐的腾讯云相关产品:腾讯云CDN(内容分发网络),详情请参考:https://cloud.tencent.com/product/cdn

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Express4.x API (二):Request (译)

}) app.use('/greet',greet) // load the router on '/greet' 即使使用路径模式或一组路径模式来加载路由器,baseUrl特性返回匹配字符串,而不是模式...(s), 在下面这个路径,greet路径加载两个路由路径 app.use(['/gre+t','hel{2}o'],greet) // load the router on '/gre+t' and...sort=decs req.path // => "/users" 当从中间件调用时,挂载点不包含在req.path req.protocol 请求协议字符串,当使用TSL请求时:http或者https...),这个Referrer和Referer字段可以互换 req.get('Content-Type'); // => 'text/plain' req.get('content-type'); // =>...Body-parsing必须被加载为了req.param正常的使用 写在后面 Express文档Request部分就完成了,本人学识有限在学习的过程翻译,难免有所纰漏,另外翻译仅仅是方便个人学习交流使用

2.3K110
  • 学习 HTTP Referer

    工作实际使用的场景: 在双品牌“乐彩云”推广为降低双域名跳转改造成本,运维层面在 Nginx 添加了一个规则,若访问链接(例如 news.zcygov.cn)的 Referer 包含 lecaiyun.com...Referrer-Policy: unsafe-url Referer 字段包含源信息、路径和查询字符串,不包含锚点、用户名和密码。...="_blank">地址二 页面地址一,优先按元素级策略,走 no-referrer,而页面其他元素(包括但不限于 a 标签)则按 meta 页面级策略执行 作用及使用场景 以下列举了几个比较常见的作用及使用场景...图片来自[阿里云CDN的防盗链配置] https://help.aliyun.com/document_detail/27134.html (2)埋点分析 埋点分析有一种情况是用于追溯用户的完整访问路径...目的其实是为了保护用户隐私,过于完整的 Referer 信息能够通过日志抓取到完整链路,也就意味着你的访问路径和来源是没有任何隐藏,这样可能会对隐私及网站的安全性带来一定的危害。

    1.6K30

    WEB安全防护相关响应头(下)

    下文中,我们侧重介绍一些和跨站安全相关的响应头—— 一、Referrer-Policy -- 不要问我从哪里来 “互联网”这个词,顾名思义,“互联”才有意义。...域名和协议完全相同,两个站点才是同源站点; origin 浏览器会发送 referer 请求头,但 referer 请求头里只有发起方的域名信息,没有完整的 URL 路径。...,发送包含完整 URL 的 referer 请求头;如果是非同源的资源, referer 请求头里只有域名信息,没有完整 URL; strict-origin-when-cross-origin 和上一条类似...JavaScript 脚本在多年的进化使用越来越灵活,功能越来越强大,这也导致人们原本不太在意的浏览器客户端安全,变得越来越重要了。...所以他的建议是,如果很确定自己的网站没有跨站问题或无法忍受自己的页面被误判有跨站,就设置 X-XSS-Protection:0;否则就明确禁用有问题的整个网页,使用 X-XSS-Protection:1

    2.6K10

    img 标签 访问图片 返回403 forbidden问题,meta标签的说明

    -- 完整的域名或网址 --> <meta name="directory" content="submission...服务器端在拿到这个<em>referrer</em>值后就可以进行相关的处理,比如图片资源,可以通过<em>referrer</em>值判断请求是否来自本站,若不是<em>则</em>返回403或者重定向返回其他信息,从而实现图片的防盗链。...所以针对上面的403情况的解决方法,就是把<em>referrer</em>设置成no-<em>referrer</em>,这样发送请求不会带上<em>referrer</em>信息,对方服务器也就<em>无法</em>拦截了。...隐藏<em>referrer</em>信息后,图片资源可以正常访问 浏览器<em>中</em><em>referrer</em>默认的值是no-<em>referrer</em>-when-downgrade,就是除了降级请求的情况以外都会带上<em>referrer</em>信息。...降级请求是指<em>https</em>协议的地址去请求http协议,所以上面403的情况还有另一种解决方法就是,请求的图片地址换成http协议,自己的地址<em>使用</em>http协议,这样降级请求也不会带上<em>referrer</em>。

    2.7K10

    学习 HTTP Referer

    工作实际使用的场景:在双品牌“乐彩云”推广为降低双域名跳转改造成本,运维层面在Nginx添加了一个规则,若访问链接(例如 news.zcygov.cn)的 Referer 包含 lecaiyun.com...Referrer-Policy: strict-origin-when-cross-origin同源时,发送完整的Referer字段;跨域时,如果 HTTPS 网址链接到 HTTP 网址,不发送Referer...Referrer-Policy: unsafe-urlReferer字段包含源信息、路径和查询字符串,不包含锚点、用户名和密码。...携带完整 URL 信息no-referrer✅--origin-✅-unsafe-url--✅strict-origin从 HTTPS 请求到 HTTP 的网址时满足以下任意条件:从 HTTPS 请求到...>地址二复制代码页面地址一,优先按元素级策略,走 no-referrer,而页面其他元素(包括但不限于

    1.7K30

    在B站看猫片被老板发现?不如按下F12学学HTTP

    本文已经收录在GitHub https://github.com/xiaobaiTech/golangFamily , 有大厂面试完整考点和成长路线,欢迎Star。 ? ?...OPTIONS: options是什么 它用于获取当前URL所支持的方法。若请求成功,它会在HTTP响应头部带上给各种“Allow”的头,表明某个请求在对应的服务器中都支持哪种请求方法。...比如在上面的请求截图里,可以看出我是使用strict-origin-when-cross-origin策略,含义是跨域时将当前页面URL过滤掉参数及路径部分,仅将协议、域名和端口(如果有的话)当作 Referrer...否则 Referrer 还是传递当前页的全路径。同时当发生降级(比如从 https:// 跳转到 http:// )时,不传递 Referrer 报头。...cache-control: no-store 带有“no-store”指令的响应无法缓存到任何位置,也永不缓存。也就是说,用户每次请求此数据时,都必须将请求发送到源站服务器以获取新副本。

    1K21

    安全开发小知识记录

    小小知识大作用 0x01 F&Q 1.前端Web Q:a标签target="_blank"的安全问题及解决办法 答:A标签的target属性规定在何处如何打开链接文档常用的有_self & _blank,如果在一个...此时我只需要在标签中加上一个rel="noopener"属性(chrome)或者rel="noreferrer"属性(火狐),当然您可以将两个属性值合并写成rel="noopener noreferrer"来完整覆盖...,此时子页面就再也访问不到父页面的句柄所以更无法操作原窗口的句柄; 也可以通过js来控制限制句柄的访问: var otherWindow = window.open(); otherWindow.opener...Q:”no-referrer”属性标签解决防盗链问题办法 答:该标签属性解决其他网站防盗链图片得设置方法,可对绝大部分网站适应,但是会造成百度统计数据异常,请谨慎使用(已测试部分gif网站无效)。...-- #标签内使用no-referrer --> xxx</a

    46910

    安全开发小知识记录

    小小知识大作用 0x01 F&Q 1.前端Web Q:a标签target="_blank"的安全问题及解决办法 答:A标签的target属性规定在何处如何打开链接文档常用的有_self & _blank,如果在一个...此时我只需要在标签中加上一个rel="noopener"属性(chrome)或者rel="noreferrer"属性(火狐),当然您可以将两个属性值合并写成rel="noopener noreferrer"来完整覆盖...,此时子页面就再也访问不到父页面的句柄所以更无法操作原窗口的句柄; 也可以通过js来控制限制句柄的访问: var otherWindow = window.open(); otherWindow.opener...Q:”no-referrer”属性标签解决防盗链问题办法 答:该标签属性解决其他网站防盗链图片得设置方法,可对绝大部分网站适应,但是会造成百度统计数据异常,请谨慎使用(已测试部分gif网站无效)。...-- #标签内使用no-referrer --> xxx</a

    70010

    微信公众号复制的图片可以正常显示的办法

    referer 的 metedata 参数可以设置为以下几种类型的值: never always origin default 如果在文档插入 meta 标签,并且 name 属性的值为 referer...,浏览器客户端将按照如下步骤处理这个标签: 1.如果 meta 标签没有 content 属性,终止下面所有操作 2.将 content 的值复制给 referrer-policy ,并转换为小写...referer-policy 的值为default:如果当前页面使用的是 https 协议,而正要加载的资源使用的是普通的 http 协议,则将 http header 的 referer 置为空;...的值,注意:这种情况下,如果当前页面使用https 协议,而要加载的资源使用的是 http 协议,加载资源的请求头中也会携带 referer。...例子 如果页面包含了如下 meta 标签,所有从当前页面中发起的请求将不会携带 referer: 如果页面包含了如下

    6.8K90

    使用Referer Meta标签控制referer 来源

    安全 有些使用https 的网站,可能在 URL 中使用一个参数(sid 等)来作为用户身份凭证,而又需要引入其他 https 网站的资源,这种情况下,网站肯定不希望泄露用户的身份凭证信息。...技术细节 referer 的 metedata 参数可以设置为以下几种类型的值: never always origin default 如果在文档插入 meta 标签,并且 name 属性的值为 referer...,浏览器客户端将按照如下步骤处理这个标签: 1.如果 meta 标签没有 content 属性,终止下面所有操作 2.将 content 的值复制给 referrer-policy ,并转换为小写... 的值为default:如果当前页面使用的是 https 协议,而正要加载的资源使用的是普通的 http 协议,则将 http header 的 referer 置为空; 3.如果 referer-policy... https 协议,而要加载的资源使用的是 http 协议,加载资源的请求头中也会携带 referer。

    2.8K60

    Document.Referrer丢失的几个原因

    在Javascript,我们可以通过document.referrer获取同样的信息。通过这个信息,我们就可以知道访客是从什么渠道来到当前页面的。...但是通过这种方式打开的页面,基本全都丢失referrer。并且,这种情况下,也无法使用window.opener的方式去获取丢失的referrer了。...IE下,通过客户端Javascript的document.referrer读取到的值是空的,但是如果你使用流量监控软件看一下的话,你会发现,实际上HTTP请求的Referer报文头却是有值的,这可能是...HTTPS跳转到HTTP 从HTTPS的网站跳转到HTTP的网站时,浏览器是不会发送referrer的。这个各大浏览器的行为是一样的。...例如,我们在HTTPS使用Google Reader或是Gmail的时候,点击某个链接去到另外一个网站,那么从技术上来说,这样的访问和用户直接键入网址访问是没有什么分别的。

    4.1K20

    Express学习笔记

    npm提供的body-parser或者connect-multiparty来获取post数据 body-parser Express默认都使用body-parser作为请求体解析post数据,这个模块也能解析...(req.url) res.send(req.body); }); 在中间添加urlencodedParser,请求是依然使用req.body获取数据。...布尔 true maxAge 设置 Cache-Control 头的 max-age 属性(以毫秒或者 ms 格式的字符串为单位) 数字 0 redirect 当路径名是目录时重定向到结尾的“/”。...secure: 当 secure 值为 true 时,cookie 在 HTTP 是无效,在 HTTPS 才有效 。 Path: 表示 在那个路由下可以访问到cookie。...如果在 COOKIE 设置了“httpOnly”属性,通过程序(JS 脚本、applet 等)将无法读取到COOKIE 信息,防止 XSS 攻击的产生 。

    3.8K10

    Express 框架

    使用 Express 可以快速地搭建一个完整功能的网站。 Express 框架核心特性: 可以设置中间件来响应 HTTP 请求。 定义了路由表用于执行不同的 HTTP 请求动作。...常见属性有: req.app:当callback为外部文件时,用req.app访问express的实例 req.baseUrl:获取路由当前安装的URL路径 req.body / req.cookies...:获取原始请求URL req.params:获取路由的parameters req.path:获取请求路径 req.protocol:获取协议类型 req.query:获取URL的查询参数串.../ req.acceptsLanguages:返回指定字符集的第一个可接受字符编码 req.get():获取指定的HTTP请求头 req.is():判断请求头Content-Type的MIME类型...你可以使用 express.static 中间件来设置静态文件路径

    2.3K20

    python requests 网页编码问题

    简介:不同的服务器采用的网页编码可能不一样,如果使用错误的编码发送数据,将不会得到正确的数据。   目的:识别访问网页的编码,发送正确的编码数据和解码。   ...如果返回的response没有的话,一般为网页的编码。 ? 3、实例测试--访问一个gbk编码的网站 初始化。...'area':'北京', 'action':'area2zone' } requests默认为utf8编码,如果以非gbk编码访问gbk的一个查询页面,并对返回值进行utf8编码,则会造成无法正确查询...url = 'https://www.ip138.com/post/search.asp' r = req.get(url,params=urlencode(data,encoding='gbk'))...小结: 爬虫的过程,编码的错误会造成错误。因此要对编码具有一定掌握。

    1.8K20

    使用 Referer Meta 标签控制 referer—详解 referrer-policy

    安全 有些使用https 的网站,可能在 URL 中使用一个参数(sid 等)来作为用户身份凭证,而又需要引入其他 https 网站的资源,这种情况下,网站肯定不希望泄露用户的身份凭证信息。...技术细节 referer 的 metedata 参数可以设置为以下几种类型的值: never always origin default 如果在文档插入 meta 标签,并且 name 属性的值为 referer...,浏览器客户端将按照如下步骤处理这个标签: 1.如果 meta 标签没有 content 属性,终止下面所有操作 2.将 content 的值复制给 referrer-policy ,并转换为小写...的值为default:如果当前页面使用的是 https 协议,而正要加载的资源使用的是普通的 http 协议,则将 http header 的 referer 置为空; 3.如果 referer-policy...https 协议,而要加载的资源使用的是 http 协议,加载资源的请求头中也会携带 referer。

    2.5K50
    领券