我正在使用带有lighttpd的FastCGI在C ++中编写webapp。我这样做的原因是痛苦的,因为最终产品将在嵌入式设备上运行。最初,我不知道FCGI模式;我以为一切基本上都是响应者。然后我了解了授权者,并且我一直在努力为它提供支持。
Lighttpd似乎可以毫不费力地将授权者放在静态内容之前,但是当我尝试保护另一个FCGI脚本时,它给了我403禁止。
我做了很多研究,得出了一些结论:
为了记录,我正在使用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"
))
)
为了将其包装起来,有人可以指导我使用FCGI授权程序来控制对lighttpd上其他FCGI脚本(/二进制文件)的访问,而不仅仅是静态文件吗?让变量传递工作也很好。感谢您阅读此内容!
答案 0 :(得分:2)
我见过的所有内容似乎都表明FastCGI授权程序不适用于lighttpd中的规范。我所做的是在我的正常响应者代码中实现我自己的授权方案。这对我的目的来说很好,但更复杂的网站可能真的感受到这一点的痛苦。 :(如果有人想出更好的答案,回应,我最终会改变你的答案。