2009-05-19 32 views
0

我正在使用新服务从服务器拉取xml数据。通过我的服务器上的PHP脚本进行身份验证的方法

该服务提供登录的两种方法,一种通过URL查询:

http://<server>/login.asp?username=<User Name>&password=<Password> 

,服务器返回有效期为7天的cookie。这意味着不需要登录每个查询(并且使脚本效率更低),我只需要每周登录一次。

我刚刚意识到我不能这样做,因为脚本不是从Web浏览器运行,而是从服务器上的cron脚本运行。有没有来存储我的服务器上的cookie的方式,还是我去的第二个方法:

令牌

该令牌的用户名,passwork 和用户组加密使用DES 算法一个键和一个时间戳。 可以通过使用DES算法 用适当的键或低于安全 呼叫的任何 应用生成的令牌可以被用于:令牌是包含在返回的 页面的主体 和是一小时内有效

我对这种方法一无所知。你能为我指出正确的方向吗?谢谢。

埃德

回答

1

有没有办法在我的 服务器上存储cookie?

是的。这是如何:

curl -c cookies.txt http://<server>/login.asp?username=<User Name>&password=<Password> 

这会写他们netscape格式为cookies.txt

诺亚

0

如果你有机会获得实际的登录脚本,您可以改为始终包含某种唯一的ID只有你知道..

更妙的是使用一些HMAC-MD5(/ SHA1)方案就像OpenAuth一样。如果你懒惰,只需在你访问的每个网址中加入'?key = somethingonlyyouknow'等字样,绕过用户名+密码。用户+密码方案'应该'只能被人类使用,而不能被机器使用。

如果全部失败,请更改您的脚本以存储Cookie。如果你使用'curl',你可以指定cookie应该存储在哪个文件中。

相关问题