Nodej表达请求标头 - 获取引用者等.

Har*_*rry 6 node.js express

我收到一个支付网关https的帖子以验证付款等.我需要验证帖子是否来自域名.

我试图验证引用者来自某个域名列表但在我的req.headers中我没有看到引用者|引用者选项:

{ 'x-real-ip': '123.34.45.176',
  'x-forwarded-for': '123.34.45.176',
  host: 'my.foo.com',
  'x-nginx-proxy': 'true',
  connection: 'close',
  'user-agent': 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)',
  accept: '*/*',
  'content-length': '441',
  'content-type': 'application/x-www-form-urlencoded' }
Run Code Online (Sandbox Code Playgroud)

为什么我的标题空了那些字段,如referer,origin等?

这是一篇帖子:

app.post('/payment/notify/', function(req, res){
   req.headers
})
Run Code Online (Sandbox Code Playgroud)

Dan*_*iel 12

并非所有请求都有referer标头.

如果浏览器所在的最后一页是安全服务器(https),则它不会向您发送引用.

此外,如果您的用户在地址栏中输入您的地址,您也不会获得引用.

  • 依赖引用者并不是确定是否已付款的安全方式.您需要为支付网关设置某种后端查询.例如,当一个人在应用程序中登录facebook时,应用程序从facebook获取访问令牌,然后将其传递给服务器,服务器向facebook发出请求以验证访问令牌.你不只是接受应用程序的话.这不安全.因此,如果您需要知道是否已付款,则需要向支付网关提出后端请求. (6认同)
  • 标题信息可能是欺骗性的,尤其是"Referer",因此依赖它是很糟糕的 (2认同)