基础问答
- 什么是表单
可以收集用户的信息和反馈意见,是网站管理者与浏览者之间沟通的桥梁。 表单包括两个部分:一部分是HTML源代码用于描述表单(例如,域,标签和用户在页面上看见的按钮),另一部分是脚本或应用程序用于处理提交的信息(如CGI脚本)。不使用处理脚本就不能搜集表单数据。
表单通常是交由CGI(公共网关接口)脚本处理。CGI是一种在服务器和处理脚本之间传送信息的标准化方式。CGI脚本比较典型的是使用Perl语言编写,当然也有其他语言如C++,Java,VBScript或JavaScript。在创建交互表单之前,接洽您的ISP或服务器管理员以确认CGI脚本可以在您的服务器上运行。
表单由文本域、复选框、单选框、菜单、文件地址域、按钮等表单对象组成,所有的部分都包含在一个由标识符标志起来的表单结构中。
表单的种类有注册表、留言薄、站点导航条、搜索引擎等。 - 浏览器可以解析运行什么语言?
支持HTML(超文本标记语言)、XML(可扩展标记语言)以及Python、PHP、JavaScript、ASP等众多脚本语言。 - WebServer支持哪些动态语言?
JavaScript、ASP、PHP、Ruby等脚本语言,ASP基于IIS WEB SERVER,是微软的服务器端脚本技术,PHP基于APACHE WEB SERVER,与ASP有几分类似,都是一种在服务器端执行的嵌入HTML文档的脚本语言。
实践内容
- Web前端HTML
启动:apachectl start
查看端口占用情况:netstat -aptn
浏览器登录到Apache首页 ok可用
Apache的工作目录是/var/www/html,编写一个HTML作为前端的登录页面
我并没有绑定php,所以回车后会出现这种情况
- Web前端javascipt
用JavaScript来编写一个验证用户名、密码的函数,当其为空或者长度不符合要求时提示错误信息
- Web后端,MySQL基础
安装:apt-get install mysql
启动/etc/init.d/mysql start
登陆:mysql -u root -p
MySQL建表建库
CREATE SCHEMA库表的名称
;
CREATE TABLE库表的名称
.users
(
userid
INT NOT NULL COMMENT '',
username
VARCHAR(45) NULL COMMENT '',
password
VARCHAR(256) NULL COMMENT '',
enabled
VARCHAR(5) NULL COMMENT '',
PRIMARY KEY (userid
) COMMENT '');
输入insert into users(userid,username,password,enabled) values(ID号,'用户id',password("用户密码"),"TRUE");添加新用户。
- PHP测试
新建一个PHP测试文件vi /var/www/html/1.php
- Web后端:编写PHP网页,连接数据库,进行用户认证
这里我们修改第二个任务的php文件,使之可以查询数据库
但是我的kail虚拟机出现问题,php不能链接到mysq,所以采用了同学的解决方法,下载一个XAMPP来在主机上进行接下来的实验
测试如下
正确输入用户名密码
错误输入用户名密码
- 最简单的SQL注入
在用户名输入框中输入' or 1=1#,密码随便输入
竟然登录成功了,这是因为,这时候' or 1=1#合成后的SQL查询语句为select * from lxmtable where username='' or 1=1#' and password=md5(''),#相当于注释符,会把后面的内容都注释掉,1=1是永真式,所以这个条件肯定恒成立,一定会登陆成功。 - xss攻击
在用户名输入框中输入读取图片,图片和网页代码在同一文件夹下
ok,成功了。
实验体会
这次实验前面一直很顺利,但是在php链接数据库时出现了问题,使用了很多同学成功的代码,将其中需要改成自己mysql的都改好,但还是不能够解决这个问题,浪费了很多时间,最后还是用了主机完成了这次实验。