gpt4 book ai didi

javascript - 从客户端传递referer并在node.js中获取headers.referer

转载 作者:太空宇宙 更新时间:2023-11-04 01:48:38 35 4
gpt4 key购买 nike

我有几个网站,我想检查哪个网站调用我的 api,我在 node.js 中执行此操作

  const mySite = req.headers && req.headers.referer.split('/')[2]

在正常情况下,我会得到 mysite1.com、myothersite.net,但是上面的代码“安全”吗?在什么情况下标题不存在?如果我从 POSTMAN 调用并且不添加 header 会导致上述代码出现任何问题吗?

最佳答案

I know it's not secure, at least it did something. My concern will above code crash my server if referer is not present.

是的,它会崩溃。在您的代码中,如果未发送Referer,您将收到此错误

TypeError: Cannot read property 'split' of undefined

由于您使用的是 express ,因此可以使用req.header() ,使您的代码更短更安全:

const mySite = (req.header('Referer') || '').split('/')[2];
// ^^^ case insensitive header check

我使用了req.header('Referer') || '' 以确保我们始终获得一个字符串,即使未设置 header ,因此 .split 是安全的。

除了不区分大小写之外,使用 req.header() 的好处是,Referrer 和 Referer 字段可互换

关于javascript - 从客户端传递referer并在node.js中获取headers.referer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50520355/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com