我目前有一个 jscript,它可以在服务器上为我运行 PHP 脚本。但我希望至少能保证一定的安全,所以我设置了一个登录名。现在,如果我使用常规的 user:password@domain 系统,它将无法工作;IE 认为这是一个安全问题。如果我让 IE 记住密码,它每次都会弹出一条确认我登录的安全消息(这破坏了按钮的意义)。
所以我需要一种方法来让安全信息消失。
我可以降低安全设置,这对我来说没问题,但似乎没有什么办法可以解决这个问题。也许需要更改一些注册表设置?
找到一个 jscript 修复程序,让我可以在 URL 中使用密码。以前有一个适用于旧系统的 regedit,它允许 IE 使用 URL 密码(在我的 64 位 Windows7 设置上不起作用),尽管我怀疑这对 jscript 是否有帮助(因为它会直接崩溃)。
使用 IE 以外的应用程序。在这种情况下,我不确定该怎么做。我希望它反应灵敏且不可见,所以 IE 是一个不错的选择。它几乎是即时的。
直接使用 XMLHttpRequest 而不是 IE?可能甚至更快,但我不知道它是否有帮助,还是只是有相同的错误。
使用完全不同的方法。也许是一些可以编写网站浏览脚本的应用程序。
这是我的 jscript:
var args = {};
var objIEA = new ActiveXObject("InternetExplorer.Application");
if( WScript.Arguments.Item(0) == "pause" ){
objIEA.navigate("http://domain/index.html?pause");
}
if( WScript.Arguments.Item(0) == "next" ){
objIEA.navigate("http://domain/index.html?next");
}
objIEA.visible = false;
while(objIEA.readyState != 4) {}
objIEA.quit();
答案1
获得:
wget --user=someuser --password=somepass -O nul: “http://domain/index.html?next”
-O nul:
是为了避免创建一个无用的index.html
。
在.cmd
脚本中,使用"http://domain/index.html?%~1"
。
卷曲:
curl -x someuser:somepass "http://domain/index.html?next" > nul:
Python和urllib
:
#!/usr/bin/perl
import sys, urllib
action = sys.argv[1]
urllib.urlopen('http://user:pass@domain/index.html?'+action)
Perl和LWP::UserAgent
:
#!/usr/bin/perl
use LWP::UserAgent;
my $action = $ARGV[0];
my $ua = LWP::UserAgent->new;
## Make sure you set the correct realm!
$ua->credentials(
'domain:80',
'realm',
'user' => 'password'
);
$ua->get('http://domain/index.html?'.$action);