找回密码
 立即注册

微信扫码登录

搜索
查看: 3745|回复: 16

[技术探讨] 求助大佬!如何使用Node Red进行"Basic Authentication"加密的HTTP ...

[复制链接]

7

主题

63

回帖

417

积分

中级会员

积分
417
金钱
347
HASS币
0
发表于 2022-12-21 18:33:37 | 显示全部楼层 |阅读模式
本帖最后由 s1711880582 于 2022-12-21 18:46 编辑

求助大佬!如何使用Node Red进行"Basic Authentication"加密的HTTP HTTP Request

我的宇视摄像头有个取照片的接口:
http://admin:[email protected]:85/images/snapshot.jpg
使用浏览器输入地址可以直接看到实时的照片。

浏览器访问的抓包如下:
抓包截图.png

我的Node Red配置如下
2222.png

部署后报错如下
{
"Response": {
        "ResponseURL": "/images/snapshot.jpg",
        "ResponseCode": 3,
         "SubResponseCode": 0,
         "ResponseString": "Not Authorized",
        "StatusCode": 401,
        "StatusString": "Unauthorized",
        "Data": "null"
}
}
Error: ENOENT: no such file or directory, open '{
"Response": {
        "ResponseURL": "/images/snapshot.jpg",
        "ResponseCode": 3,
         "SubResponseCode": 0,
         "ResponseString": "Not Authorized",
        "StatusCode": 401,
        "StatusString": "Unauthorized",
        "Data": "null"
}
}
我该怎么排查问题?
回复

使用道具 举报

7

主题

63

回帖

417

积分

中级会员

积分
417
金钱
347
HASS币
0
 楼主| 发表于 2022-12-21 19:35:04 | 显示全部楼层
louis_lee 发表于 2022-12-21 18:58
抓的是Authorization: Digest,选的类型是basic auth,看起来不匹配啊。

需要换成Digest Auth(摘要认证) ...

这个改成Digest Auth(摘要认证)也不行,报错还是上面的
回复

使用道具 举报

7

主题

63

回帖

417

积分

中级会员

积分
417
金钱
347
HASS币
0
 楼主| 发表于 2022-12-21 19:58:37 | 显示全部楼层
louis_lee 发表于 2022-12-21 19:48
这个还要cookie,是不是得要先登录啊,或者你把cookie加到header里试试

如果直接在浏览器地址栏输入http://admin:密码@192.168.10.71:85/images/snapshot.jpg  直接就显示实时图片

在一台全新的设备上访问http://admin:密码@192.168.10.71:85/images/snapshot.jpg 也是直接就可以显示图片

如果访问http://192.168.10.71:85/images/snapshot.jpg 就会弹出来一个对话框 要输入用户名密码
回复

使用道具 举报

7

主题

63

回帖

417

积分

中级会员

积分
417
金钱
347
HASS币
0
 楼主| 发表于 2022-12-21 20:13:34 | 显示全部楼层
回复

使用道具 举报

7

主题

63

回帖

417

积分

中级会员

积分
417
金钱
347
HASS币
0
 楼主| 发表于 2022-12-21 20:27:13 | 显示全部楼层
bainiu 发表于 2022-12-21 20:23
除了认证的错误还有文件目录错误,Error: ENOENT: no such file or directory
看能不能从文件目录上排查一 ...

谢谢大佬 楼下又更新了一下
回复

使用道具 举报

7

主题

63

回帖

417

积分

中级会员

积分
417
金钱
347
HASS币
0
 楼主| 发表于 2022-12-21 20:28:40 | 显示全部楼层
我用Post Main输入URL和摘要验证的用户名密码可以直接出图
回复

使用道具 举报

7

主题

63

回帖

417

积分

中级会员

积分
417
金钱
347
HASS币
0
 楼主| 发表于 2022-12-21 20:30:28 | 显示全部楼层
louis_lee 发表于 2022-12-21 18:58
抓的是Authorization: Digest,选的类型是basic auth,看起来不匹配啊。

需要换成Digest Auth(摘要认证) ...

我用Post Main输入URL和摘要验证的用户名密码可以直接出图
回复

使用道具 举报

7

主题

63

回帖

417

积分

中级会员

积分
417
金钱
347
HASS币
0
 楼主| 发表于 2022-12-21 21:02:53 | 显示全部楼层
louis_lee 发表于 2022-12-21 20:35
那可以试一下公用测试digest auth,看看行不行

https://jigsaw.w3.org/HTTP/Digest/

属实秀到我了 有时候可以  有时候不行

回复

使用道具 举报

7

主题

63

回帖

417

积分

中级会员

积分
417
金钱
347
HASS币
0
 楼主| 发表于 2022-12-21 21:38:44 | 显示全部楼层
louis_lee 发表于 2022-12-21 21:20
至少调通了,有不返回401的时候。说明至少你的node-red digest auth功能可以用。 ...

但是请求自己的摄像头一直不行。。能请大佬出手调试一下么?我可以把摄像头接口穿透出来,或者远程桌面
回复

使用道具 举报

7

主题

63

回帖

417

积分

中级会员

积分
417
金钱
347
HASS币
0
 楼主| 发表于 2022-12-22 16:43:56 | 显示全部楼层
经过那么久的折磨 我大概搞明白了怎么回事了:

onvif协议相关:3.1.1 Digest方式获取Authorization
python宇视IPC调用SDK抓图
宇视的Onvif抓图分为2个阶段,第一次请求 会返回 401 同时返回 WWW-Authenticate
第二个阶段 WWW-Authenticate 组成Authorization 的加密参数  再次发送就可以了
Node Red大概率只能进行第一阶段,我没有再继续抓包研究。
我选择关闭加密 哈哈啊哈哈
关闭全歼.png

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-8-2 16:02 , Processed in 1.254654 second(s), 12 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表