【问题标题】:FastCGI authorizer support in lighttpd broken?lighttpd 中的 FastCGI 授权器支持损坏了吗?
【发布时间】:2012-02-17 15:10:06
【问题描述】:

我正在使用带有 lighttpd 的 FastCGI 用 C++ 编写一个 webapp。我这样做很痛苦的原因是因为最终产品将在嵌入式设备上运行。最初,我不知道 FCGI 模式;我认为一切基本上都是响应者。然后我了解了授权者,并且一直在尝试启用对它的支持。

Lighttpd 似乎可以在静态内容前设置授权者,但当我尝试保护另一个 FCGI 脚本时,它给了我 403 禁止。

我做了很多研究,得出了一些结论:

  1. 从授权方到后续 FCGI 的 "Variable-VAR_NAME: value"Lighttpd's support 已损坏。第一个链接有一个补丁,但是修补和编译 FCGI 会很麻烦,因为我必须为 x86 和 ARM 做这个,然后我必须支持它。 (我们目前使用的是商业广告BSP,这样我们就不必处​​理类似的事情了。)
  2. 第一个链接中的语言暗示您可以使用授权者保护动态内容,但this bug report 另有说明。当然,一直乐于助人的 stbuehler 没有发表评论就关闭了它。 (我知道他有很多事情要做。)

作为记录,我正在使用 lighttpd 1.4.28(桌面和 ARM)和自定义身份验证(使用 SHA-512 在客户端上散列的密码),因为 (1) TLS 对于此应用程序是不可能/不必要的,(2)基本的 HTTP 身份验证还不够好,(3) 在 lighttpd 中摘要身份验证被破坏了,(4) 这并不是真正的安全系统。

这是我的 lighttpd.conf 文件的相关部分:

fastcgi.server = (
  "main.fcgi" =>
    (( "mode"         => "responder",
       "bin-path"     => "/var/fcgi/main.fcgi",
       "socket"       => "/tmp/fcgi.sock",
       "check-local"  => "disable",
       "max-procs"    => 1
    )),
  "/" =>
    (( "mode"         => "authorizer",
       "bin-path"     => "/var/fcgi/auth.fcgi",
       "socket"       => "/tmp/fcgi.sock",
       "check-local"  => "disable",
       "max-procs"    => 1,
       "docroot"      => "/var/fcgi"
    ))
)

总结一下,谁能指导我在 lighttpd 上使用 FCGI 授权器来控制对其他 FCGI 脚本(/二进制文件)的访问,而不仅仅是静态文件?让变量传递工作也很好。感谢您阅读本文!

【问题讨论】:

    标签: embedded webserver authorization fastcgi lighttpd


    【解决方案1】:

    我所看到的一切似乎都表明 FastCGI 授权者不能按照 lighttpd 中的规范工作。我所做的是在我的正常响应者代码中实现了我自己的授权方案。这对我的目的来说很好,但更复杂的网站可能真的会感受到这个痛苦。 :( 如果有人对此提出更好的答案,请回复,我最终会设法将答案更改为您的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-22
      • 2016-07-16
      • 2018-06-26
      • 2021-08-15
      • 1970-01-01
      相关资源
      最近更新 更多