关于isapi接受post的问题(100分)

  • 主题发起人 主题发起人 DNChen
  • 开始时间 开始时间
D

DNChen

Unregistered / Unconfirmed
GUEST, unregistred user!
我有如下form

<FORM NAME="bform" METHOD="post" action="cgi-bin/bargin.dll/operator">
User:<INPUT TYPE=TEXT NAME="name" SIZE="15"><BR>
Password:<INPUT TYPE=password NAME="password" SIZE="15" MAXLENGTH="8">
<INPUT TYPE="SUBMIT" VALUE=" O K !">  <INPUT TYPE="RESET"
VALUE="RESET!">
</FORM>


在isapi中使用以下代码

name := request.ContentFields.Values['name'];
password := request.ContentFields.Values['password'];

无法获取name和password两个东西的值,我查了帮助
ContentFields is the parsed content of a POST request message.
说明用post方法返回的from是应该使用contentfields来获取内容的。
然后我再查了当时的contentfields.text,值如下:
T /cgi-bin/bargin.dll/operator HTTP/1.1
Accept: */*
Referer:
http://127.0.0.1/wcontent.htm
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 95)
Host: 127.0.0.1 Content-Length: 22
Connection: Keep-Alive

很明显的name和password两个东西都没有传过来,实在是想不通,
请各位大虾帮助!我用的是d3,调试用服务器webweaver,ie5.0!本机调试
 
拜托各位!
 
首先问一句,你不会是给自己留"后门"吧!
 
你要的name,password在Html中是可以打印出来的,但若将此参数返回调用者
只能使用CGI来处理,至于Delphi,估计函数需要的值不能如此应用,是否还有
其它的方法.
 
什么后门啊,这是毕业设计,不会实际用的,isapi应该是可以处理post的,
我手头一本书上提到过可惜他说得太简单。
 
用Delphi编写CGI程序,将你的Name、password参数返回过来,问题不就解决了?!
 
CGI or ISAPI should be same, both of then accept post method.
I susspect that the path in post is not crect.

Could you put you source code for "/operator" action here?
 
可用cgi program.
method=get
name,password 为一张表。
name= copy(request.Queryfields.string[0],6,length(request.Queryfields.string[0])-5);
password= copy(request.Queryfields.string[1],11,length(request.Queryfields.string[0])-10);
读进来,再核对password and name。
还有问题来问我,这个我搞过了.
 
你把程序发过来我来看看
yrx@usa.net
ISAPI和CGI对于信息的请求应该没有区别
 
可能问题
你用了一个路径,查一查是否是相应的PageProduct处理请求
或者你的Action中default设了没有?
 
一定要有一个default吗?

get方法可以接受,可是对于密码来说,get方法太危险了
/operator当然有这个action,因为我里面有个判断
如果name取值为''就返回错误信息,每次错误信息都能够
返回,而且走单步也会走进去。
 
很奇怪的是,你的ContentFields.Text的内容是HTTP
请求头的内容,而不是FORM的域的内容.从理论上说,这
些内容不该出现在这里.不知你的系统出了什么问题.
你可以检查一下QueryFields.Text的内容,看是否有
需要的内容.

BTW:POST和GET的安全性是没有太大的区别的.如果要
安全,应该做一个JAVA APPLET.这个APPLET专门完成
安全验证.如果要实现得十分安全,就要求APPLET非常
复杂,可能要用RSA等公钥系统,而且CLIENT/SERVER
至少有两次以上的数据交互.至于用TYPE=PASSWORD
的方法,我认为完全没有安全性可言,不用也罢.
 
queryfield里是空的,

我说的安全性是基于不被别人一眼就能看见密码这最基本的安全,如果是get,那么即
使是断弦以后,别人查一下你的历史记录就可以知道你的密码了
 
dnchen 呀,我试了是好的,你又没把这给我。
 
我自己找出问题了,是webweaver的问题,换了PWS就好了,可惜了我的最后50Mb空间,

分数送给各位了,以后就看在这个分数面子上,一定要多回答回答我的问题,呵呵
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
821
import
I
I
回复
0
查看
566
import
I
I
回复
0
查看
624
import
I
I
回复
0
查看
643
import
I
后退
顶部