实践内容
(1)Web前端HTML
能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。
(2)Web前端javascipt
理解JavaScript的基本功能,理解DOM。编写JavaScript验证用户名、密码的规则。
(3)Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表
(4)Web后端:编写PHP网页,连接数据库,进行用户认证
(5)最简单的SQL注入,XSS攻击测试
功能描述:用户能登陆,登陆用户名密码保存在数据库中,登陆成功显示欢迎页面。
基础问题回答
(1)什么是表单。
可以收集用户的信息和反馈意见,是网站管理者与浏览者之间沟通的桥梁。 表单包括两个部分:一部分是HTML源代码用于描述表单,另一部分是脚本或应用程序用于处理提交的信息。
表单由文本域、复选框、单选框、菜单、文件地址域、按钮等表单对象组成,所有的部分都包含在一个由标识符标志起来的表单结构中。
表单的种类有注册表、留言薄、站点导航条、搜索引擎等。
(2)浏览器可以解析运行什么语言。
HTML、XML,Python、PHP、JavaScript、ASP等
(3)WebServer支持哪些动态语言。
Javascript、ASP、PHP、Ruby等
实验过程
一、Web前端HTML
(1)安装启动Apache
通过使用service apache2 start语句启动Apache服务
在浏览器地址栏输入127.0.0.1
出现上图界面,表示已启动。
(2)HTML基础
Apache的启动文件目录为/var/www/html/
在该目录下创建html文件,命名为simple_form.html。并编写基本网页构建代码,保存退出
在浏览器上输入
file:///var/www/html/simple_form.html
可以在浏览器上呈现基本的登录界面。
二、Web前端javascipt
修改之前的simple_form.html文件内容代码
加入对登陆信息的判断,重新再回到浏览器去实验
当密码为空时,会提示密码错误。
三、Web后端:MySQL基础
(1)MySQL的配置
输入代码/etc/init.d/mysql start 启动MySQL服务 注意开头不需要加cd。。。
输入mysql -u root -p ,用root权限登录MySQL
输入use mysql;进入数据库(注意进入数据库之后的操作都要加‘;’否则程序无法识别)
输入代码:update user set password=PASSWORD("20164304") whereuser='root';
修改用户登录密码为20164304
输入 flush privileges;更新权限
输入create database JA;创建自己的数据库
输入show databases;查看已存在的数据库
输入use JA;
输入create table test_table (username VARCHAR(20), password VARCHAR(20));建立数据库数据表
输入show tables;查看数据表项数据
输入insert into login_table values('850362408@qq.com','20164304')插入数据表项信息,
输入select * from login_table;
输入grant select,insert,update,delete on JA.* to root@localhost identified by "4304";
尝试登陆
登陆成功
三、Web后端:编写PHP网页,连接数据库,进行用户认证
(1)先编写简单的php网页脚本
文件存储在/var/www/html,文件命名为phptest.php
在浏览器地址栏输入localhost/phptest.php?a=/etc/passwd
可以看到测试网页内容:this is my php test page!
(2)利用PHP和MySQL,结合之前编写的登录网页进行登录身份认证
在var/www/html目录下创建文件login.html和login.php
login.php
该文件主要功能为,网页界面登陆相关功能
login.html
该文件主要功能为数据库内数据应用调用
(3)登陆网页检测
再次回到浏览器,在地址栏里输入127.0.0.1/login.html
输入之前在数据库中设置的用户名和密码
登陆成功
五、最简单的SQL注入,XSS攻击测试
(1)登陆
在用户名这一栏输入' or 1=1
密码输入任意字符
输入的用户名和代码中select语句经过组合
select * from users where username=''or 1=1#' and password=''
其中1=1恒成立,#相当于注释符,会把后面的内容都注释掉,因此输入任意值都可以登陆成功
(2)xss攻击测试
在var/www/html目录下放置一张我的桌面图片
便于实验,修改图片名称为test.jpg
在用户名一栏输入<img src="test.jpg"
密码输入任意值
Login.php中的echo uname是从前端接收的用户名,因此当我们在用户名一栏输入此语句之后,会直接执行语句,并显示文件夹下的图片。
实践总结与体会
通过本次实验,在Linux环境下,学习了基础php,HTML,MySQL等语句的使用方法,我认为老师上课说的很对,我们应该具有相应的模块化思维,将看起来复杂的问题分解成一个个小问题,并且逐一解决,对我今后的思考很有帮助。