Exp8 Web基础

一、实践具体要求

1.Web前端HTML(0.5分)

  • 能正常安装、启停Apache。
  • 理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。

2.Web前端javascipt(0.5分)

  • 理解JavaScript的基本功能,理解DOM。
  • 编写JavaScript验证用户名、密码的规则。

3.Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表(0.5分)

4.Web后端:编写PHP网页,连接数据库,进行用户认证(1分)

5.最简单的SQL注入,XSS攻击测试(1分)

  • 功能描述:用户能登陆,登陆用户名密码保存在数据库中,登陆成功显示欢迎页面。

二、基础问题回答

1.什么是表单?

  • 表单:表单在网页中主要负责数据采集功能。 基本组成部分:
  • 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。
  • 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。
  • 表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。

2.浏览器可以解析运行什么语言

  • 超文本标记语言:HTML
  • 可扩展标记语言:XML
  • 脚本语言:ASP、PHP、Script、JavaScript、VBScript、Perl、Python、ColdFusion、Java、JSP等。

3.WebServer支持哪些动态语言

  • 常用的有:ASP语言,PHP语言和JSP语言。

三、实验心得

        这次实验比前面几个的逻辑连贯性更高,前后的联系也很多。特别是做到后面几个,就会发现如果前面哪一步出了小差错,到这里就会寸步难行。也正因为这样,这次实验我卡住了很久,而且反反复复做了很多遍,但也因此加深了印象,对HTML、PHP有了进一步的理解。

四、实验过程

4.1 Web前端HTML

4.1.1 Apache

1.启动Apache service apache2 start 

2.查看端口占用情况 netstat -aptn

可以看到apache2占用80

3.测试1:apache可正常工作,浏览器打开 127.0.0.1:80可正常打开Apache介绍网页

测试2:apache可读取工作目录下的文件 vi /var/www/html/test.txt 随意输入字符串

4.浏览器打开 127.0.0.1:80/test.txt可看到test.txt的内容

 

4.1.2 前端编程: html+javascipt+css

1.访问Apache工作目录cd /var/www/html,新建一个4308.html文件

2.编写一个含有表单的html

3.登录浏览器,输入localhost:80/4308.html,成功出现下图界面

4.在上面的文本框内随意输入,然后点击确认按钮数据会传送到html_form_action.php的页面,由于没有对此页面进行编辑,出现的是404

 

4.1.3Web前端javascipt

JavaScript是一种属于网络的脚本语言,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。

DOM:文档对象模型,可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。换句话说,这是表示和处理一个HTML或XML文档的常用方法。

1.我们可以用JavaScript来编写一个简单的程序,验证用户名、密码。

2.登入浏览器,输入localhost:80/164308.html进行测试。

当没有输入用户名、密码时,出现如下界面:

当没有输入密码时,出现如下界面:

当没有输入正确位数的密码时,出现如下界面:

 

4.2 MySQL基础

mysql是一个数据库,我们这次进行了简单的应用:开启mysql,并更改用户名密码;建立库表,并插入数据;实现网页和数据库的连接。

1.输入/etc/init.d/mysql start打开mysql服务

2.输入mysql -u root -p,以root身份登录,根据提示输入密码,默认密码为password,进入MySQL

在MySQL中输入命令后面都要带一个分号作为命令结束符

3.修改密码 输入use mysql;,选择mysql数据库

输入select user, password, host from user;,显示mysql库中已有的用户名、密码与权限

输入UPDATE user SET password=PASSWORD("新密码") WHERE user='root';更改用户名root的密码

输入flush privileges;,更新权限。

输入quit退出,重新输入mysql -u root -p重新进入,使用新密码登录成功,说明修改成功

 

4.创建新表

输入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 '');

5.在表中添加内容 输入use 4308-hxm打开表

输入insert into users(userid,username,password,enabled) values(1,'20164308',password("20164308"),"TRUE");进行内容的添加

16.在MySQL中增加新用户,使用grant select,insert,update,delete on 数据库.* to 用户名@登录主机(可以是localhost,也可以是远程登录方式的IP) identified by "密码";

17.增加新用户后,exit退出,然后使用新的用户名和密码进行登录

 

4.3 PHP基础

PHP(Hypertext Preprocessor)是一种通用开源脚本语言。主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率高,PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

1.测试一下php。还是在原位置新建一个php文件

*以下是一个php测试代码:

2.浏览器打开localhost:80/4308hxm.php

 

4.4 PHP+MySQL实现登录网页编写

1.登录网页的代码:(这部分比较心塞,做了好长时间) 数据库名:xxx 表名:login_table 在表中添加用户和密码分别为:xxxx 123456

使用grant select,insert,update,delete on 数据库名.* to 用户名@localhost, identified by "密码";这句话的意思是将对某数据库的所有表的select,insert,update,delete权限授予某ip登录的某用户。 我的修改为grant select,insert,update,delete on xxx.* to xxx@localhost identified by "123456";

  • 20164308.html
  • Login.php

2.打开浏览器输入localhost:80/20164308.html登录,输入用户名及密码,会自动跳转到login.php

用户名密码正确

 

用户名密码错误

 

4.5 SQL注入攻击

SQL注入攻击:可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

1.在登录界面用户名处输入' or 1=1#,密码随意,发现可以成功登录

成功登陆的原因是这样的: 在代码中有这个语句select * from users where username='' or 1=1#' and password='' #是注释符,将其后面的内容给注释掉了,只剩下前面的1=1,恒成立,所以就可以成功登录啦。

2.将login.php文件中if($result = $mysqli->query($query_str))改为if ($result = $mysqli->multi_query($query_str))实现执行多个sql语句

3.在用户名输入框中输入';insert into login_table values('hxm','00000');#SELECT * FROM login_table WHERE username='' insert into login_table values('hxm','00000');提示登录失败。

4.到数据库里查看表的内容就发现多了一条用户信息,下次就可直接用这条用户信息登录。

 

4.6 xss攻击

XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。

1.先将图片保存在/var/www/html下

 

2.在登录的用户名中输入:<img src="4308.jpg" />haha</a>,密码随意

3.点击登入出现了大脸盘哈哈哈哈

 

缩小一点看全图

 

铛铛铛,帅气做完实验!

五、实验问题

1.此处一定要注意单引号和键盘Esc下面的那个符号不要写错了!!!

 

2.中间一直出现页面只有connection ok!的情况,后来尝试了好几次,发现是mysql配置时出现了问题,进行重新修改配置。

 

posted @ 2019-05-15 21:34  豆豆龙不长痘痘  阅读(221)  评论(0编辑  收藏  举报