20155331《网路对抗》Exp8 WEB基础实践

本文详细介绍了Web开发的基本流程,包括HTML表单设计、JavaScript验证、MySQL数据库操作及PHP后端处理。通过具体实验,展示了如何构建一个完整的登录系统,涉及SQL注入攻击与防御策略。

20155331《网路对抗》Exp8 WEB基础实践

基础问题回答

什么是表单

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

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

浏览器可以解析运行HTML、XML,javascript等脚本语言,对于JS脚本,会调用JS脚本引擎来处理

WebServer支持哪些动态语言

比较常用的有ASP语言,PHP语言和JSP语言,比如JavaScript、JSP、PHP等。

实验体会

这次的实验感觉比以前的都要困难的多,特别是我自己的编程能力也不是特别的好,代码变成了一个很大的问题。不过,虽然说实验过程比较的辛苦,但结果而言还是比较满意的,辛苦很长时间做出来了预期的效果,还是很有成就感的。

实验过程

1.Web前端HTML

输入命令sudo apt-get install apache2进行安装
1071515-20180522224427282-132297551.png

输入命令apachectl start启动apahce
1071515-20180522224434523-1102268558.png

打开失败

于是查看了端口占用的情况,并且杀死了端口,然后再次尝试打开。
1071515-20180522224450477-166932419.png

打开成功。

浏览器中输入localhost:80,可以看见我们的Apache是在正常工作的。
1071515-20180522224505806-2037940911.png

使用cd /var/www/html进入Apache目录下,新建一个简单的含有表单的html文件
1071515-20180522224515148-912208424.png
1071515-20180522224529997-1475108700.png

在浏览器打开:
1071515-20180522224916006-2141876872.png

2.Web前端:javascipt

在原有5331.html基础上,可以添加一段JavaScript代码,以完成对用户是否填写邮箱和密码的判断。l如下:
1071515-20180522224926576-1306287559.png
1071515-20180522224949035-2120370083.png

3.MySQL基础

输入/etc/init.d/mysql start开启MySQL服务:
1071515-20180522224957356-334281422.png

输入mysql -u root -p使用root权限进入,
1071515-20180522225004976-1368620806.png

用show databases;查看基本信息:
1071515-20180522225014970-191467042.png

现在来修改密码

输入以下命令修改密码

use mysql;

select user, password, host from user;

UPDATE user SET password=PASSWORD("20155331") WHERE user='root';

flush privileges;

quit
1071515-20180522225042906-832699652.png
1071515-20180522225050661-2118440475.png

然后重新登录mysql

创建数据库和新表:

create database dzdd;

use dzdd;
1071515-20180522225218347-563630849.png

使用create table dzddtable;建立数据表;使用show tables;查看存在的数据表:
create table dzddtable (userid VARCHAR(100),username VARCHAR(45),password VARCHAR(256),enabled VARCHAR(5))
1071515-20180522225233170-204482094.png

在表中添加内容:
insert into dzddtable values('dzdd','5331');
1071515-20180522225239193-370861547.png

有了数据表就往里面写数据,再查一下看存进去了没有。
1071515-20180522225254749-1178516217.png

Web后端:PHP网页

PHP是一种通用开源脚本语言。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

新建一个PHP测试文件vi /var/www/html/dzdd.php测试文件
1071515-20180522225303392-36590781.png

从浏览器中直接打开localhost:80/dzdd.php,
1071515-20180522225311344-331311516.png

可以看见测试成功

PHP+MySQL实现登录网页编写

在/var/www/html文件夹下输入vim dzdd.html,编写登录网页
1071515-20180522225523416-991114441.png

将之前编的登录网页的5331.html代码中form的action属性由#改成dzdd.php,即登录后跳转到HGY.php,再在浏览器中输入localhost:80/5331.html访问自己的登录页面

1071515-20180523163632305-722368384.png

SQL注入

在用户名输入框中输入' or 1=1#,密码输什么都会成功登陆,原因是这时候的合成后的SQL查询语句为select * from users where username='' or 1=1#' and password=md5(''),#相当于注释符,会把后面的内容都注释掉,而1=1是永真式,所以这个条件肯定恒成立,所以能够成功登陆:

1071515-20180522225538222-1223674949.png

先在PHP中改语句if ($result = $mysqli->query($query_str))为if ($result = $mysqli->multi_query($query_str)),然后在用户名框中输入';insert into users valu('7','15331','20155331',"TRUE");#在数据库中可以直接插入一个伪造的用户名,密码,下次就可以用伪造的用户名密码登录网站了(登录前将if ($result = $mysqli->query($query_str))语句改回来)。
1071515-20180522225552997-1624734992.png

转载于:https://www.cnblogs.com/dd1174751354/p/9074675.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值