Exp8 Web基础 20154328 常城

一、基础问题回答

  1. 什么是表单?
  • 表单是一个包含表单元素的区域,表单元素是允许用户在表单中(比如:文本域、下拉列表、单选框、复选框等等)输入信息的元素,表单在网页中主要负责数据采集功能,一个表单有三个基本组成部分:表单标签、表单域、表单按钮;
  • 表单标签():这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法;
  • 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等;
  • 表单按钮:包括提交按钮、复位按钮和一般按钮,用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。
  1. 浏览器可以解析运行什么语言?
  • 支持HTML(超文本标记语言)、XML(可扩展标记语言)以及Python、PHP、JavaScript、ASP等众多脚本语言。
  1. WebServer支持哪些动态语言?
  • JavaScript、ASP、PHP、Ruby等脚本语言,ASP基于IIS WEB SERVER,是微软的服务器端脚本技术,PHP基于APACHE WEB SERVER,与ASP有几分类似,都是一种在服务器端执行的嵌入HTML文档的脚本语言。

二、实验内容

1、Web前端:HTML基础

  • .输入sudo vi/etc/apache2/ports.conf查看apache端口情况,更改端口号。我改为8080

  • 通过service apache2 start开启Apache,使用netstat -aptn查看确认端口占用
  • 浏览器中输入localhost:8080,登录到Apache首页验证其可用

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

  • 登录浏览器,输入localhost:8080/2014328.html,成功出现下图界面

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

2、Web前端javascipt

  • JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果,通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。
  • DOM是文档对象模型,DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构,换句话说,这是表示和处理一个HTML或XML文档的常用方法。举个例子,要改变页面的某个东西,JavaScript就需要获得对HTML文档中所有元素进行访问的入口。这个入口,连同对HTML元素进行添加、移动、改变或移除的方法和属性,都是通过DOM来获得的。

  • 编写验证用户名和密码的规则:(比如用户名和密码不能为空)
    代码如下:

  • 登入浏览器,输入localhost:8080/20154328.html进行测试。
  • 当没有输入密码时,出现如下界面:

  • 当没有密码小于6位时,出现如下界面:

3、 MySQL基础

  • 在web开发中我们要用到后台数据库,而MySQL就是一个数据库管理系统,类似的还有SqlServer、oracle等等,由于MySQL是开放的,不收费,所以一般中小型网站的开发都选择MySQL作为网站数据库。

  • 先输入/etc/init.d/mysql start指令开启mysql服务,输入mysql -u root -p,并根据提示输入密码,默认密码为p@ssw0rd,进入MySQL,注意:在MySQL中输入命令后面都要带一个分号作为命令结束符:

  • 使用create database '库名';建立一个数据库;使用show databases;查看存在的数据库;使用use 库名;使用我们创建的数据库:

  • 使用我们创建的数据库,使用指令 create table cctable (username VARCHAR(20), password VARCHAR(20)); 创建一张表格。

  • 使用指令 show tables; 查看表格,输入 describe 表名;可以查看表内设定的参数。

  • 使用指令 insert into cctable values('cc4328','20154328'); 插入数据,使用select指令可以查看到我们添加的数据。

4、Web后端:PHP基础

  • PHP是一种通用开源脚本语言,语法吸收了C语言、Java和Perl的特点,主要适用于Web开发领域。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
  • 我们可以在/var/www/html目录下新建一个PHP测试文件,简单了解一下它的一些语法:

  • 浏览器打开localhost、4328.php可以看到:

  • 简单测试完成后,我们可以利用PHP和MySQL结合之前编的登录网页进行简单的用户身份认证,这里可以参考老师给的代码编写login.php,代码如下所示

  • 在这一块我试了差不多五六次,每次都是这个样子

  • 自己试了很多次,依旧没有办法,差不多快要绝望了。每一次都显示“connect is ok!!!”然后就没有然后了。后来看了很多人的报告,发现自己在建立数据库的时候没有将数据库中的所有表的select,insert,update,delete权限授予某ip登录的某用户。刚开始做的时候,到了这一步一直出问题就跳过了,但是到了后面依旧做不下去。所以决定将这里搞通。
  • 即使用grant select,insert,update,delete on 数据库名.* to 用户名@localhost, identified by "密码";这句话的意思是将对某数据库的所有表的select,insert,update,delete权限授予某ip登录的某用户。

  • 将这一步完成后继续进行下面的步骤,发现都全部通了,一次性很顺利的完成了。

  • 打开浏览器输入localhost:8080/cc123.html登录,输入用户名及密码,会自动跳转到cc4328.php
    用户名和密码是数据库中表中的username和password

6、SQL注入攻击

  • SQL注入攻击:可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
  • .在登录界面用户名处输入' or 1=1#,密码随意,发现可以成功登录(在代码中有这个语句select * from users where username='' or 1=1#' and password='' #是注释符,将其后面的内容给注释掉,所以只剩下前面的1=1,这是一个恒成立的式子,因此可以成功的登录)

  • 将login.php文件中if($result = $mysqli->query($query_str))改为if ($result = $mysqli->multi_query($query_str))实现执行多个sql语句
  • 在用户名输入框中输入';insert into cc321 values('cc','4328');#SELECT * FROM cc321 WHERE username='' insert into cc321 values('cc','4328');

  • 提示登录失败

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

7、xss攻击

  • XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。故将跨站脚本攻击缩写为XSS。XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被骇客用来编写危害性更大的phishing攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。
  • 将图片保存在/var/www/html下

  • 用户名那里输入haha

  • 查了相关的资料后知道这是因为电脑的权限不够,在终端中输入chmod 777 /var/www/html/20154328.jpg 授予任何权限的读,写,运行。

  • 再次运行后出现图片

三、实验总结与体会

  • 这次实验学的东西主要是和web有关,内容较多,大多数都比较基础,之前的课程中也涉及过一部分。很多东西还是挺有意思的,像sql注入、XSS攻击等,虽然目前很多网站都对这些攻击有所防范,但是对一些较高级的sql注入攻击手段还是没能很好的解决,这些都值得我们去深入研究。这次实验也给我们提了个醒,我们以后在进行一些web开发时,不能只考虑功能,还是要尽量去避免一些常见的攻击手段,以此来提高我们的安全性。
  • 同时在做实验的时候应该细心,仔细。我就是因为在做实验的时候将代码中的一些需要改的内容没有修改对,导致自己做错了很多次,浪费了很多的时间。同时也要县认认真真的看一遍实验指导书,自己刚开始就照着学长的实验报告开始做,但具体是做什么自己也两眼一抹黑,遇到问题就无从下手。后来认认真真的看了实验指导书后对很多的东西有了系统性的了解,也让自己的实验做起来更加得心应手。

转载于:https://www.cnblogs.com/20154328changcheng/p/9052757.html

Exp8 Web基础 20154328 常城相关推荐

  1. # EXP8 Web基础

    EXP8 Web基础 基础问题回答 1.什么是表单? 表单:表单在网页中主要负责数据采集功能. 基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法. 表 ...

  2. 20145233《网络对抗》Exp8 Web基础

    20145233<网络对抗>Exp8 Web基础 实验问题思考 什么是表单? 表单在网页中主要负责数据采集功能 一个表单有三个基本组成部分: 表单标签 表单域:包含了文本框.密码框.隐藏域 ...

  3. Exp8 web基础 20154301仉鑫烨

    20154301 Exp8 Web基础 仉鑫烨 一. 实践内容 Web前端:HTML基础 Web前端:javascipt基础 Web后端:MySQL基础 Web后端:PHP基础 SQL注入 XSS攻击 ...

  4. 2018-2019 20165208 网络对抗 Exp8 Web基础

    目录 2018-2019 20165208 网络对抗 Exp8 Web基础 实验内容 基础问题回答 实践过程记录 1. Apache准备 2. Web前端HTML 3. Web前端javascipt ...

  5. 2018-2019-2 网络对抗技术 20165322 Exp8 Web基础

    2018-2019-2 网络对抗技术 20165322 Exp8 Web基础 目录 实验原理 实验内容与步骤 Web前端HTML Web前端javascipt Web后端:MySQL基础:正常安装.启 ...

  6. Exp8 web基础 20164323段钊阳

    网络对抗技术 20164323 Exp8 Web基础 回答问题 (1)什么是表单 在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以 ...

  7. 网络对抗 Exp8 Web基础 20154311 王卓然

    Exp8 Web基础 1. 实验内容 (1) Web前端HTML:能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. (2) Web前端jav ...

  8. 2017-2018-2 20155314《网络对抗技术》Exp8 Web基础

    2017-2018-2 20155314<网络对抗技术>Exp8 Web基础 目录 实验内容 实验环境 基础问题回答 预备知识 实验步骤 1 macOS下Apache的配置 2 macOS ...

  9. php web 登陆验证和页面控制,# 2019-2020-2 20175308杨元 《网络对抗技术》Exp8 Web基础...

    2019-2020-2 20175308杨元 <网络对抗技术>Exp8 Web基础 实践目标及内容 实践内容 (1)Web前端HTML(0.5分) 能正常安装.启停Apache.理解HTM ...

  10. 20145209刘一阳《网络对抗》Exp8 Web基础

    20145209刘一阳<网络对抗>Exp8 Web基础 基础问题回答 1.什么是表单? 表单是一个包含表单元素的区域,表单元素是允许用户在表单中(比如:文本域.下拉列表.单选框.复选框等等 ...

最新文章

  1. java考勤与工资管理系统
  2. GUN sed高级用法,sed脚本编写
  3. linux 错误 ttyname failed: Inappropriate ioctl for device 解决方法
  4. 用Docker之后还需要OpenStack吗
  5. dubbo学习之服务消费者
  6. 这个网盘下载60MB/s!PanDownload复活了!
  7. PHP引用全局作用域中可用的全部变量是,php全局变量之学习笔记
  8. 卷积神经网络结构_卷积神经网络
  9. linux脚本 逻辑运算,Linux-shell-逻辑运算和;
  10. LoRaWAN 巩固了其作为低功耗广域网主导技术的地位
  11. Vczh Library++ 语法分析器开发指南
  12. 博为峰Java技术题 ——JavaSE Java 方法Ⅰ
  13. 使用WM_QUIT终止线程
  14. 调用赋码远程服务异常_Remoting远程访问的这个异常怎么处理???
  15. 【bzoj4897】[Thu Summer Camp2016]成绩单 区间dp
  16. 【小盐巴学习笔记】—用Python批量爬取微博评论
  17. 【WinCE】WinCE通过USB与PC同步
  18. 嵌入式面试经典30问
  19. cve_2019_0708 bluekeep复现踩坑
  20. 点击率 ctr 与转化率 cvr

热门文章

  1. 【论文写作】投稿心路
  2. Android【语音合成TTS】
  3. ebay 后台HTML有尺寸宽度要求吗,Ebay后台有哪些常用的操作页面?
  4. 领导想延长我的试用期,我该怎么办?
  5. spring报错→UnexpectedRollbackException: Transaction silently rolled back becaus
  6. 蒙牛、小米、比亚迪,明星企业为何扎堆换LOGO?
  7. Stata:面板分位数回归
  8. 【软件开发规范一】《Java开发规范》
  9. 神策数据桑文锋:重构数据根基,实现数字化经营
  10. java创新创业比赛项目教程_java毕业设计_springboot框架的大学生创新创业项目管理...