0

我正在使用一项新服务从服务器中提取 xml 数据。

该服务提供了两种登录方法,一种是通过 url 查询:

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

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

我刚刚意识到我不能这样做,因为脚本不是从 Web 浏览器运行的,而是从服务器上的 cron 脚本运行的。有没有办法在我的服务器上存储 cookie,或者我必须采用第二种方法:

令牌

令牌是使用带有密钥和时间戳的 DES 算法加密的用户名、密码和用户组。令牌可以由任何应用程序使用具有适当密钥的 DES 算法生成,也可以使用以下安全调用:令牌包含在返回页面的正文中,有效期为一小时

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

埃德

4

2 回答 2

1

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

是的。就是这样:

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

这将以 netscape 格式将它们写入cookies.txt.

诺亚

于 2009-05-26T13:47:57.057 回答
0

如果您有权访问实际的登录脚本,则可以始终包含某种只有您知道的唯一 ID。

更好的是使用一些 HMAC-(MD5/SHA1) 方案,比如 OpenAuth。如果您很懒惰,只需在您访问的每个 url 中包含类似 '?key=somethingonlyyouknow' 的内容,绕过用户名 + 密码。用户 + 密码方案“应该”仅由人类使用,而不是由机器使用。

如果一切都失败了,请更改您的脚本以存储 cookie。如果您使用“curl”,您可以指定应该存储 cookie,以及应该存储在哪个文件中。

于 2009-05-19T17:32:36.273 回答