『瀚思彼岸』» 智能家居技术论坛

标题: 求助大佬!如何使用Node Red进行"Basic Authentication"加密的HTTP ... [打印本页]

作者: s1711880582    时间: 2022-12-21 18:33
标题: 求助大佬!如何使用Node Red进行"Basic Authentication"加密的HTTP ...
本帖最后由 s1711880582 于 2022-12-21 18:46 编辑

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

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

浏览器访问的抓包如下:
[attach]44270[/attach]

我的Node Red配置如下
[attach]44271[/attach]

部署后报错如下
  1. {
  2. "Response": {
  3.         "ResponseURL": "/images/snapshot.jpg",
  4.         "ResponseCode": 3,
  5.          "SubResponseCode": 0,
  6.          "ResponseString": "Not Authorized",
  7.         "StatusCode": 401,
  8.         "StatusString": "Unauthorized",
  9.         "Data": "null"
  10. }
  11. }
复制代码
  1. Error: ENOENT: no such file or directory, open '{
  2. "Response": {
  3.         "ResponseURL": "/images/snapshot.jpg",
  4.         "ResponseCode": 3,
  5.          "SubResponseCode": 0,
  6.          "ResponseString": "Not Authorized",
  7.         "StatusCode": 401,
  8.         "StatusString": "Unauthorized",
  9.         "Data": "null"
  10. }
  11. }
复制代码
我该怎么排查问题?

作者: louis_lee    时间: 2022-12-21 18:58
本帖最后由 louis_lee 于 2022-12-21 19:00 编辑

抓的是Authorization: Digest,选的类型是basic auth,看起来不匹配啊。

需要换成Digest Auth(摘要认证)
作者: s1711880582    时间: 2022-12-21 19:35
louis_lee 发表于 2022-12-21 18:58
抓的是Authorization: Digest,选的类型是basic auth,看起来不匹配啊。

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

这个改成Digest Auth(摘要认证)也不行,报错还是上面的
作者: louis_lee    时间: 2022-12-21 19:48
s1711880582 发表于 2022-12-21 19:35
这个改成Digest Auth(摘要认证)也不行,报错还是上面的

这个还要cookie,是不是得要先登录啊,或者你把cookie加到header里试试
作者: s1711880582    时间: 2022-12-21 19:58
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 就会弹出来一个对话框 要输入用户名密码
作者: s1711880582    时间: 2022-12-21 20:13
louis_lee 发表于 2022-12-21 19:48
这个还要cookie,是不是得要先登录啊,或者你把cookie加到header里试试

还是不行 我在浏览器抓了Cookie


                               
登录/注册后可看大图

作者: bainiu    时间: 2022-12-21 20:23
除了认证的错误还有文件目录错误,Error: ENOENT: no such file or directory
看能不能从文件目录上排查一下,"ResponseURL": "/images/snapshot.jpg" 改成 "ResponseURL":"http://192.168.10.71:85/images/snapshot.jpg" 试试
作者: s1711880582    时间: 2022-12-21 20:27
bainiu 发表于 2022-12-21 20:23
除了认证的错误还有文件目录错误,Error: ENOENT: no such file or directory
看能不能从文件目录上排查一 ...

谢谢大佬 楼下又更新了一下
作者: s1711880582    时间: 2022-12-21 20:28
我用Post Main输入URL和摘要验证的用户名密码可以直接出图

                               
登录/注册后可看大图

作者: s1711880582    时间: 2022-12-21 20:30
louis_lee 发表于 2022-12-21 18:58
抓的是Authorization: Digest,选的类型是basic auth,看起来不匹配啊。

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

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

                               
登录/注册后可看大图

作者: louis_lee    时间: 2022-12-21 20:35
那可以试一下公用测试digest auth,看看行不行

https://jigsaw.w3.org/HTTP/Digest/
user: guest
password: guest


[attach]44274[/attach]

看看输出是不有个“you made it"
作者: s1711880582    时间: 2022-12-21 21:02
louis_lee 发表于 2022-12-21 20:35
那可以试一下公用测试digest auth,看看行不行

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

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


                               
登录/注册后可看大图

作者: louis_lee    时间: 2022-12-21 21:20
s1711880582 发表于 2022-12-21 21:02
属实秀到我了 有时候可以  有时候不行

至少调通了,有不返回401的时候。说明至少你的node-red digest auth功能可以用。
作者: s1711880582    时间: 2022-12-21 21:38
louis_lee 发表于 2022-12-21 21:20
至少调通了,有不返回401的时候。说明至少你的node-red digest auth功能可以用。 ...

但是请求自己的摄像头一直不行。。能请大佬出手调试一下么?我可以把摄像头接口穿透出来,或者远程桌面
作者: s1711880582    时间: 2022-12-22 16:43
经过那么久的折磨 我大概搞明白了怎么回事了:

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


作者: ylilike    时间: 2022-12-22 17:45
刚看到b站留言,看来你已经解决了
作者: s1711880582    时间: 2022-12-22 17:56
ylilike 发表于 2022-12-22 17:45
刚看到b站留言,看来你已经解决了

哈哈哈 是的 谢谢大佬关注~




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5