Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.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
Php 如何使用XMLRPC::客户端身份验证_Php_Ruby_Authentication_Xml Rpc - Fatal编程技术网

Php 如何使用XMLRPC::客户端身份验证

Php 如何使用XMLRPC::客户端身份验证,php,ruby,authentication,xml-rpc,Php,Ruby,Authentication,Xml Rpc,我需要发出一个必须经过身份验证的XMLRPC请求,并且在XMLRPC的身份验证端发现了有限的文档。最好的办法是什么?现在我正在使用下面的代码,但仍然会遇到身份验证失败。是否有其他方法指定客户端,然后调用辅助身份验证方法 client = XMLRPC::Client.new(@xmlrpc_url, "/xmlrpc.php", "443", nil, nil, @username, @password, true, 900) …我正在使用下面的代码,但身份验证仍然失败 仔细检查远程Web服务

我需要发出一个必须经过身份验证的XMLRPC请求,并且在XMLRPC的身份验证端发现了有限的文档。最好的办法是什么?现在我正在使用下面的代码,但仍然会遇到身份验证失败。是否有其他方法指定客户端,然后调用辅助身份验证方法

client = XMLRPC::Client.new(@xmlrpc_url, "/xmlrpc.php", "443", nil, nil, @username, @password, true, 900)
…我正在使用下面的代码,但身份验证仍然失败

仔细检查远程Web服务器是否正在接受资源的HTTP基本身份验证
/xmlrpc.php
,并进一步接受您的
@username
@password

根据,RPC
client.call(“bwizzy”)
的XMLRPC咒语将使用基本身份生成如下内容:

POST /xmlrpc.php HTTP/1.1
User-Agent: XMLRPC::Client (Ruby 1.9.1)
Content-Type: text/xml; charset=utf-8
Content-Length: 88
Connection: keep-alive
Authorization: Basic c3RhY2s6b3ZlcmZsb3c=
Accept: */*
Host: localhost

<?xml version="1.0"><methodCall><methodName>bwizzy</methodName></params></methodCall>
POST/xmlrpc.php HTTP/1.1
用户代理:XMLRPC::Client(Ruby 1.9.1)
内容类型:text/xml;字符集=utf-8
内容长度:88
连接:保持活力
授权:基础c3RhY2s6b3ZlcmZsb3c=
接受:*/*
主机:本地主机
bwizzy
(请不要向我抱怨那些标题的顺序——这就是我在网上看到的!)

现在,XML-RPC本身不提供身份验证,因此您有几个常规选项:

  • 使用典型的“web身份验证”技术
    HTTP授权方案,就像您当前使用的一样。受信任的客户端证书。Cookie身份验证令牌。等等
    然而,典型的web身份验证技术具有共同的风险。在这里四处看看,以获得更多的指导

  • 扩展RPC函数以支持用户定义的身份验证
    例如,RPC调用
    bwizzy
    可能将用户名和密码作为参数。
    或者,登录RPC函数可能会生成一个有时间限制的令牌,用作Cookie。
    这种方法是侵入性的——现在您的RPC调用必须具有身份验证意识——并且容易出错——现在您必须自己实现身份验证

  • 扩展XML-RPC本身
    XML RPC调用本身可以是有签名的,也可以是有签名和加密的,例如,ALASOAP的


  • 查看IXR,它显示了如何进行基本身份验证,但看起来不太安全

    这方面有什么进展吗?希望做同样的事吗