在计算机领域——尤其在internet上——尽管大部分web服务器所编的程序都尽可能保护自己的内容不受侵害,但只要cgi脚本中有一点安全方面的失误--口令文件、私有数据、以及任何东西,就能使入侵者能访问计算机。 遵循一些简单的规则并保持警惕能使自己的cgi脚本免受侵害,从而可以保护自己的权益。1. 脚本和程序 在开始决定采用何种语言编写cgi脚本时应考虑几个因素,其中之一应是安全性。shell 脚本,perl程序和c可执行程序是cgi脚本最常采用的形式,从安全性角度来说每种都备有优缺。尽管没有哪一种是最好的--基于其他方面的考虑,如速度和可重用性--每种都有实用的领域。 shell脚本一般用于小的、快速的甚至可以用完就不要的cgi程序,因此,编写它们时常常不考虑安全性。这种疏忽可以导致一些缺陷,使得仅对系统具有一般知识的人也能进入系统任意走动。 尽管shell cgi 程序最容易写,甚至只...
详细目录第一部分 perl语言第一章 概述一、perl是什么?二、perl在哪里?三、运行四、注释 第二章 简单变量一、整型二、浮点数三、字符串 第三章 操作符一、算术操作符 二、整数比较操作符三、字符串比较操作符四、逻辑操作符五、位操作符六、赋值操作符七、自增自减操作符八、字符串联结和重复操作符九、逗号操作符十、条件操作符十一、操作符的次序 第四章 列表和数组变量 一、列表二、数组--列表的存贮 1、数组的存取 2、字符串中的方括号和变量替换 3、列表范围 4、数组的输出 5、列表/数组的长度 6、子数组 7、有关数组的库函数 第五章 文件读写 一、打开、关闭文件二、读文件三、写文件四、判断文件状态五、命令行参数六、打开管道 第六章 模式匹配一、简介二、匹配操作符三、模式中的特殊字符 1、字符 + 2、字符 []和[] 3、字符 *和? 4、转义字符 5、匹配任意字母或数字 6、锚模式...
一、算术操作符 :+(加)、-(减)、*(乘)、/(除)、**(乘幂)、%(取余)、-(单目负) (1)乘幂的基数不能为负,如 (-5) ** 2.5 # error; (2)乘幂结果不能超出计算机表示的限制,如10 ** 999999 # error (3)取余的操作数如不是整数,四舍五入成整数后运算;运算符右侧不能为零 (4)单目负可用于变量: - $y ; # 等效于 $y * -1二、整数比较操作符 table 3.1. 整数比较操作符 操作符 描述 < 小于 > 大于 == 等于 <= 小于等于 >= 大于等于 != 不等于 <=> 比较,返回 1, 0, or -1 操作符结果为: 0 - 两个值相等 1 - 第一个值大 1 - 第二个值大三、字符串比较操作符 table 3.2. 字符串比较操作符 操作符 描述 ...
一、列表 列表是包含在括号里的一序列的值,可以为任何数值,也可为空,如:(1, 5.3 , "hello" , 2),空列表:()。 注:只含有一个数值的列表(如:(43.2) )与该数值本身(即:43.2 )是不同的,但它们可以互相转化或赋值。 列表例: (17, $var, "a string") (17, 26 << 2) (17, $var1 + $var2) ($value, "the answer is $value")二、数组--列表的存贮 列表存贮于数组变量中,与简单变量不同,数组变量以字符"@"打头,如: @array = (1, 2, 3); 注: (1)数组变量创建时初始值为空列表:()。 (2)因为perl用@和$来区分数组变量和简单变量,所以同一个名字可以同时用于数组变量和简单变量,如: $var = 1; ...
一、简介 模式指在字符串中寻找的特定序列的字符,由反斜线包含:/def/即模式def。其用法如结合函数split将字符串用某模式分成多个单词:@array = split(/ /, $line);二、匹配操作符 =~、!~ =~检验匹配是否成功:$result = $var =~ /abc/;若在该字符串中找到了该模式,则返回非零值,即true,不匹配则返回0,即false。!~则相反。 这两个操作符适于条件控制中,如: if ($question =~ /please/) { print ("thank you for being polite!n"); } else { print ("that was not very polite!n"); } 三、模式中的特殊字符 perl在模式中支持一些特殊字符,可以起到一些特殊的作用。1、字符 + +意味着...
一、数组变量的限制 在前面讲的数组变量中,可以通过下标访问其中的元素。例如,下列语句访问数组@array的第三个元素: $scalar = $array[2]; 虽然数组很有用,但它们有一个显著缺陷,即很难记住哪个元素存贮的什么内容。假如我们来写一个程序计算某文件中首字母大写的单词出现的次数,用数组来实现就比较困难,程序代码如下: 1 : #!/usr/local/bin/perl2 :3 : while ($inputline = ) {4 : while ($inputline =~ /b[a-z]s+/g) {5 : $word = $&;6 : $word =~ s/[;.,:-]$//; # remove punctuation7 : for ($count = 1; $count <= @wor...
我们已经见过用print函数将原始的未格式化的文本输出到文件,本章讲述如何用函数write和打印格式来生成格式化的输出。一、定义打印格式 定义打印格式的关键字为format,语法为:format formatname =lines_of_output. 打印格式名formatname的命名规则与一般变量相同。结束行为一个句号,此行不能有任何其它字符,包括空格,句号必须是该行第一个字符。 打印格式的定义象子程序一样可以放在任何地方,甚至可以放在条件语句中,但是最好把它们集中放在程序的开头或结尾。二、显示打印格式 打印格式的显示有两步: 1、将系统变量$~设成所要使用的格式 2、调用函数write 例如:1 : #!/usr/local/bin/perl2 : 3 : $~ = "myformat";4 : write;5 : 6 : format myformat =7 : ...
本章所讲的函数多数使用了unix操作系统的特性,在非unix系统中,一些函数可能没有定义或有不同的工作方式,使用时请查看perl联机文档。一、文件输入/输出函数 本节讲述从文件中读取信息和向文件写入信息的内置库函数。1、基本i/o函数 一些i/o函数在前面的章节中已有讲述,如·open:允许程序访问文件 ·close:终止文件访问 ·print:文件写入字符串 ·write:向文件写入格式化信息 ·printf:格式化字符串并输出到文件 这里简单回顾一下,再讲一些前面未提到的函数。1)open函数 open函数将文件变量与某文件联系起来,提供访问文件的接口,例如:open(myvar, "/u/file"); 如果文件打开成功,则返回非零值,否则返回零。缺省地,open打开文件用以读取其内容,若想打开文件以写入内容,则在文件名前加个大于号:open(myvar, ">/u/file"); ...
一、引用简介 引用就是指针,可以指向变量、数组、哈希表(也叫关联数组)甚至子程序。pascal或c程序员应该对引用(即指针)的概念很熟悉,引用就是某值的地址,对其的使用则取决于程序员和语言的规定。在perl中,可以把引用称为指针,二者是通用的,无差别的。 引用在创建复杂数据方面十分有用。 perl5中的两种引用类型为硬引用和符号引用。符号引用含有变量的名字,它对运行时创建变量名并定位很有用,基本上,符号引用就象文件名或unix系统中的软链接。而硬引用则象文件系统中的硬链接。 perl4只允许符号引用,给使用造成一些困难。例如,只允许通过名字对包的符号名哈希表(名为_main{})建立索引。perl5则允许数据的硬引用,方便多了。 硬引用跟踪引用的计数,当其数为零时,perl自动将被引用的项目释放,如果该项目是对象,则析构释放到内存池中。perl本身就是个面向对象的语言,因为perl中的任何...
本章介绍如何使用perl的面向对象编程(oop)特性及如何构建对象,还包括继承、方法重载和数据封装等内容。一、模块简介 模块(module)就是perl包(pachage)。perl中的对象基于对包中数据项的引用。(引用见第x章引用)。 详见http://www.nease.net/tppmsgs/msgs0.htm#28的perlmod和perlobj。 在用其它语言进行面向对象编程时,先声明一个类然后创建该类的对象(实例),特定类所有对象的行为方式是相同的,由类方法确定,可以通过定义新类或从现存类继承来创建类。已熟悉面向对象编程的人可以在此遇到许多熟悉的术语。perl一直是一个面向对象的语言,在perl5中,语法略有变动,更规范化了对象的使用。 下面三个定义对理解对象、类和方法在perl中如何工作至关重要。 .类是一个perl包,其中含提供对象方法的类。 .方法是一个perl子程序,类...
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器