工作上需要给其它部门的同事提供一些数据,或者很简单的web操作(类似cms)功能的页面。
刚开始的时候,直接挂到apache下一个页面,通知对方。但是这样没用用户,密码的验证就导致
任何知道这个url的用户都可以操作,访问,不安全。就花了半天研究了一下perl cgi 的基于session的
验证功能。
我这里只简单的做了两个cgi脚本,一个用于登录验证的动作。另一个执行真正的后台操作动作(这个根据不同的业务需求执行不同的操作:如DB,远程ftp等等)
说明一下,我这里只是简单的把用户名,密码放到服务器上的一个文本里,当然可以用不同DB来实现,但原理是一样的。
上面这个文件实现一个最简单的用户名,密码登录验证。如果用户名,密码跟服务器上user.list的用户名,密码匹配的话。
验证成功,并且设置服务器session:
my $session = new CGI::Session("driver:File", $q , {Directory=>'/tmp'});
同时把这个信息以cookie的方式返回给客户端:
my $cookie = $q->cookie(CGISESSID =>$session->id );
$q->header(-charset=>'gb2312', -cookie=>$cookie);### 这个带回来了session的信息。
之后登陆成功,就可以点击操作了,这个cgi的内容如下:
这个文件的功能首先是验证时候登陆,以避免没有登录直接敲url就可以访问到这个功能。
接着进行一些html的操作,如textarea的文本输入等等。这个处理就千变万化了,我们要根据需求实现。