Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PerlWeb服务(服务器)最佳实践_Perl_Web Services_Authentication_Ssl_Authorization - Fatal编程技术网

PerlWeb服务(服务器)最佳实践

PerlWeb服务(服务器)最佳实践,perl,web-services,authentication,ssl,authorization,Perl,Web Services,Authentication,Ssl,Authorization,我目前正在使用中修改的服务器 与SOAP::WSDL和web服务相结合以提供web服务 由各种客户端类型和角色使用 ----这不是问题,以下是----- 我希望就以下主题达成最佳解决方案(尽可能): 请求/调度/响应速度 协议安全性(正确使用客户端验证的SSLv3/TLS) 资源安全性(基于每个资源和每个方法的安全角色/特征) 类型、方法签名和所需安全角色和特征的声明性规范 问题: 我希望使用基于or的服务器,但我知道这与服务器内客户端身份验证SSL不兼容我的理解正确吗? 我不想在每次请求时

我目前正在使用中修改的服务器 与SOAP::WSDL和web服务相结合以提供web服务 由各种客户端类型和角色使用

----这不是问题,以下是-----

我希望就以下主题达成最佳解决方案(尽可能):

  • 请求/调度/响应速度
  • 协议安全性(正确使用客户端验证的SSLv3/TLS)
  • 资源安全性(基于每个资源和每个方法的安全角色/特征)
  • 类型、方法签名和所需安全角色和特征的声明性规范
问题:

  • 我希望使用基于or的服务器,但我知道这与服务器内客户端身份验证SSL不兼容我的理解正确吗?

  • 我不想在每次请求时都验证客户端证书,而想使用CA SiteMinder,在成功验证客户端证书后,我会给出一个有时间限制的会话cookie,它可以用于后续请求,以避免这一时间损失(并减轻服务器负载)这样安全吗?(甚至足够好?)

  • 是否有一些模块/框架可以为公开的对象和方法提供基于特征和角色的授权。WSDL实际上只处理类型(甚至不处理复杂的类型)。我想使用/实现一些基于声明性注释(或外部YAML)的方案来处理复杂的WSDL类型以及特征和角色授权有人这样做过吗?(即使是单独的?还有其他模块可以作为一个好的起点吗?

  • 最后-我是不是因为在Perl5中这样做而发疯了?;)


  • 在Perl中这样做简直是疯了:-)

    说真的,给你更多的力量。我的问题是,假设你有理由重新发明这个轮子,为什么不考虑Python呢?Perl是活的,而且很好,但是这种事情(低级脚本)现在很多都是在Python中完成的


    最后,假设你没有实际的理由去做这个(除了好玩),你应该真正考虑一个Web框架(当然是Django)和类似NGNIX来处理HTTP交互。

    < P>好的,每个人都回答了所有的问题,但是真正的问题。
    我将在单独的帖子中将其分解为具体的问题,并且不会提及服务器的组成-这是本帖中的每个人似乎都想讨论的主题,而且完全不相关。

    我知道这是一个老问题,但仅供参考
    IO::Async
    可以很好地使用SSL,从模块开始。

    为什么您要自己编写服务器?您是否需要做一些其他服务器(如apache或lighttpd)无法为您做的特殊事情?服务器部分是最简单的部分。也许我应该在我的帖子中更加强调安全和授权主题。我试用了一系列服务器配置,包括Apache、lighthttpd和NginX、HTTP::Daemon和HTTP::Daemon::Threaded等服务器。。。在我现有的(线程化的)代码库(一些单元,一些actorish)中,我发现在考虑“另一个服务器”情况下的启动/调度之后,最理想的解决方案是HTTP::Daemon::threaded。但实际上,这是次要的。我只包含了这些信息,以便限制对我所问主题的讨论:安全性、声明性WSDL键入和授权,以及最后(但不排除)请求/发送/响应速度。@David:这并没有真正为我澄清任何问题。就你在帖子和评论中所说的,听起来apache或lighthttpd都可以轻松处理。我已经为这些写了很多奇怪的身份验证方案。是否仅仅是线程化的perl驱动了这一决策?那么,也许您可以举出一些例子。我不明白apache或lighthttpd在“声明性WSDL类型和授权”方面给了我什么优势。他们是否有一些预先构建的面向SOAP的基础设施,我可以将其用于像Perl这样的松散类型语言?我很清楚,任何服务器都可以完成SSL部分。我的问题wrt安全是关于使用Cookie来避免不断地重新验证SSL客户端证书。这不是为了好玩。这是一次尝试,在重新使用数千个以前编写的Perl模块的同时,对现有基础设施进行现代化改造。在任何情况下,Django是否自动向我提供了我所询问的那种授权基础设施?我确实使用NginX处理静态HTTP内容。我发现(线程化的)纯perl服务器同样快,而且更灵活。最近的替代方案是带有线程调度程序的NginX+FastCGI。。。这在一天结束时实际上是一样的,只是现在我必须处理一个外部系统来进行客户端证书验证。在查看Django文档之后——也许我遗漏了一些东西——我看不到任何声明性WSDL类型和角色+特征授权是可能的,更不用说可用了。是否有贡献的库可以做到这一点,或者至少提供了一个起点?我不排除用另一种语言(如Python)来完成这一部分,毕竟我可以将最终请求委托给我现有的服务器——只要它不花费太多。在这种情况下,我认为Perl和Python是等效的工具。也许Perl在CPAN方面有优势,但Python将无法完成Perl(甚至Ruby)无法完成的任务。David,Django将为您提供访问HTTP信息以进行HTTP身份验证的权限,然后您必须将其插入某种身份验证机制()。或者,您可以使用它们的内置authentiçation()。然后,使用FLUP作为cgi服务连接到nginx。Nginx不讲wsgi,所以如果您想使用Nginx,就不能选择wsgi