Exp 8 Web基础

Exp 8 Web基础

8.1 基础问题回答

(1)什么是表单

表单就是在网页中包含各种表单元素的区域,其中允许用户将信息通过表单元素来输入数据,其主要功能是采集数据传到逻辑运算中。表单中一般有3个元素:表单标签、表单域、表单按钮。其中表单标签有数据所用程序的url以及提交方式,表单域中主要是一些控件,表单按钮主要是一些按钮,负责处理表单中脚本,控制提交、取消、以及一些自定义功能。

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

浏览器可以解析HTML、XML、PHP、javascript、ASP、python等。

(3)WebServer支持哪些动态语言

webserver支持JSP、ASP、PHP语言,ASP是一个WEB服务器端的开发环境,利用它可以产生和执行动态的、互动的、高性能的WEB服务应用程序。PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C,Java和Perl语言的语法,支持目前绝大多数数据库。JSP是比较新的语言,JSP可以在Servlet和JavaBean的支持下,完成功能强大的站点程序。

8.2 实验内容

Web前端HTML

  • 首先我们先打开我们虚拟机中已经安装好的Apache服务器

1267683-20190519173100909-1895750106.png

  • 然后创建一个HTML文档,写一个简单的登陆界面保存为test1.html
    1267683-20190519174538405-41211483.png

  • 将这个文件放入到虚拟机中的var/www/html中,这时候我们可以输入127.0.0.1/test1.html来看到效果。

1267683-20190519173119080-670144730.png

Web前端JavaScript

  • 修改我们之前写好的代码,加入JavaScript代码来处理一按钮,执行逻辑。
    1267683-20190519174618995-469980355.png

  • 当用户名为空时提示用户名不能为空,当密码为空时提示重新输入

1267683-20190519173130726-1190325006.png

  • 保存为test2.html放入到之前的文件夹中,浏览器中运行。

1267683-20190519173136490-1314738425.png

MySQL基础

  • 输入etc/init.d/mysql start启动MySQL,mysql -u root -p进入root用户,默认密码为空
    1267683-20190519173200232-340169150.png

  • 然后我们使用create database login创建数据库

1267683-20190519173227533-121730420.png

  • use login;操作数据库
  • create table login(username VARCHAR(20),password VARCHAR(20));创建表

1267683-20190519173241286-1100345478.png

  • insert into login values ("zhaozhongkai","20165103");插入一条数据

1267683-20190519173359664-1630478639.png

1267683-20190519173442932-564929853.png

  • grant select,insert,update,delete on login.* to zzk@localhost identified by "20165103";新建一个用户后将权限赋予给新用户

1267683-20190519173410867-413433058.png

编写PHP网页,连接数据库,进行用户认证

  • 在之前的文件夹中创建一个php文件,输入一些简单语句,我们在浏览器中看一下

1267683-20190519173454758-1682900223.png

1267683-20190519173502791-1683711132.png

  • 之后将之前的代码简单修改一下,然后重新写一下php文件,主要功能是获取前段传送到后台的表单,然后到数据库中查询。

1267683-20190519174345344-818522131.png

1267683-20190519174452757-1037417658.png

1267683-20190519174119732-562647387.png

  • 成功构建出登陆功能的网页,输入用户名密码后正确登陆

1267683-20190519174134288-210984781.png

1267683-20190519174137650-105008942.png

最简单的SQL注入,XSS攻击测试

sql注入
  • 利用SQL查询语句的漏洞,在用户名框中输入' or 1=1#后任意密码都可登陆,主要原因是输入后相当于select * from users where username='' or 1=1#' and password=''语句,导致验证永真保证通过。

1267683-20190519173943914-789464553.png

1267683-20190519173936440-748232517.png

xss攻击
  • 将一张图片放入到之前的文件夹中,然后我们在用户名框中输入img src="miao33.png" />
  • 然后就成功读取图片了。
    1267683-20190519173640906-75610976.png
    1267683-20190519173918560-1567035748.png

转载于:https://www.cnblogs.com/8cloud33zzk/p/10889995.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用以下代码来实现: ``` import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DatabaseConnection { private Connection connection; private String url; private String username; private String password; public DatabaseConnection(String fileName) throws IOException, ClassNotFoundException, SQLException { Properties props = new Properties(); InputStream inputStream = new FileInputStream(fileName); props.load(inputStream); String driver = props.getProperty("jdbc.driver"); url = props.getProperty("jdbc.url"); username = props.getProperty("jdbc.username"); password = props.getProperty("jdbc.password"); Class.forName(driver); connection = DriverManager.getConnection(url, username, password); } public Connection getConnection() { return connection; } public void closeConnection() throws SQLException { if (connection != null) { connection.close(); } } } ``` 在这个代码中,我们首先加载了一个名为“fileName”的properties文件,它包含了“jdbc.driver”、“jdbc.url”、“jdbc.username”和“jdbc.password”这几个键和它们所对应的值。这些值告诉我们如何连接到名为“web exp003”的数据库。 接下来,我们使用反射来加载数据库驱动程序。然后,我们使用“DriverManager.getConnection()”方法来获取一个数据库连接。 最后,我们定义了“getConnection()”和“closeConnection()”方法,前者返回数据库连接,后者关闭它。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值