基础问题回答

1.什么是表单

表单在网页中主要负责数据采集功能。一个表单有三个基本组成部分:

表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。

表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。

表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。

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

支持HTML(超文本标记语言)、XML(可扩展标记语言)以及Python、PHP、JavaScript、ASP等众多脚本语言

3.WebServer支持哪些动态语言

Javascript、ASP、PHP、Ruby等脚本语言

4.get和post有什么区别?

GET后退按钮/刷新无害,POST数据会被重新提交。

GET书签可收藏,POST为书签不可收藏。GET能被缓存,POST不能缓存 。

GET对数据长度有限制,当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。POST无限制。

GET只允许 ASCII 字符。POST没有限制。也允许二进制数据。

与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。在发送密码或其他敏感信息时绝不要使用 GET !POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。GET的数据在 URL 中对所有人都是可见的。POST的数据不会显示在 URL 中。

实践总结与体会

1.知识点总结:

HTML:超文本标记语言,标准通用标记语言下的一个应用。“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。超文本标记语言的结构包括“头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。

Javascript:JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

PHP:PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。

MySQL:MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。

2.实验体会:

这次实验主要是利用了web相关技术,了解HTML、PHP、MySQL的基本语法,其中遇到了一些因为没有基础而造成的困难,但是在仔细学习之后都一一解决了。

实验过程记录

1.Web前端:HTML基础

kali已经预装apache,我们使用 systemctl start apache2 ,将服务打开。

使用 netstat -tupln |grep 80 指令查看80端口被哪些进程占用,如果有的话,用 kill+(进程ID) 杀死进程。

vi /var/www/html/ login.html 编辑代码,在Apache工作目录下建立一个含有表单的html文件。

 1 <html>
 2 <head>
 3 <title>CryptoTeam</title>
 4 <!-- Meta tag Keywords -->
 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6 <!-- Meta tag Keywords -->
 7 </head>
 8
 9 <body>
10 <!-- main -->
11 <!--//header-->
12     <h2>Login Quick</h2>
13         <form action="login" method="post">
14             <input placeholder="E-mail" name="Name" class="user" type="text">
15             <br>
16             </br>
17             <input  placeholder="Password" name="Password" class="pass" type="password">
18             <br>
19             </br>
20             <input type="submit" value="Login">
21         </form>
22 <!--//main-->
23 </body>
24 </html>

打开网页,效果如下:

2.Web前端:javascipt基础

添加一段代码判断身份信息

 1 <html>
 2 <head>
 3 <title>CryptoTeam</title>
 4 <!-- Meta tag Keywords -->
 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6 <!-- Meta tag Keywords -->
 7 </head>
 8
 9 <body>
10 <!-- main -->
11 <!--//header-->
12     <h2>Login Quick</h2>
13         <form action="login" method="post" name="form_login">
14             <input placeholder="E-mail" name="Email" class="user" type="text" οnfοcus="if (this.value=='Your email') this.value='';" />
15             <br>
16             </br>
17             <input  placeholder="Password" name="Password" class="pass" type="password" οnfοcus="if (this.value=='Your password') this.value='';"/>
18             <br>
19             </br>
20             <input type="submit" value="Login" onClick="return validateLogin()"/>
21         </form>
22 <!--//main-->
23 <script language="javascript">
24     function validateLogin(){
25         var sUserName = document.form_login.Email.value ;
26         var sPassword = document.form_login.Password.value ;
27         if ((sUserName =="") || (sUserName=="Your email")){
28         alert("user email!");
29         return false ;
30         }
31
32         if ((sPassword =="") || (sPassword=="Your password")){
33         alert("password!");
34         return false ;
35         }
36
37     }
38 </script>
39
40 </body>
41 </html>

3.Web后端:MySQL基础

输入 /etc/init.d/mysql start 开启MySQL服务:

输入 mysql -u root -p 使用root权限进入,默认的密码是 password :

输入 use mysql; ,进入mysql数据库,输入 update user set password=PASSWORD("20164309") where user='root'; ,修改密码;输入 flush privileges; ,更新权限。

使用 create database oyyx; 建立一个数据库;使用 show databases; 查看存在的数据库;使用 use oyyx; 使用我们创建的数据库。

用 create table test_table (username VARCHAR(20), password VARCHAR(20)); 建立数据表, show tables; 查看数据表。

增加一个名为oyyx的新mysql用户,使用 grant select,insert,update,delete on oyyx.* to oyyx@localhost identified by "20164309"; 指令进行。

4.Web后端:编写PHP网页

先编辑一个简单的php脚本:

1 <?php
2 echo ($_GET["a"]);
3 include($_GET["a"]);
4 echo "Hello world! This is my php test page!<br>";
5 ?>

输入 localhost:80/phptest.php?a=/etc/passwd ,可看到 /etc/passwd 文件的内容

利用PHP和MySQL,结合之前编写的登录网页进行登录身份认证,修改后的login.php代码如下:

 1 <?php
 2 $uname=$_POST["Email"];
 3 $pwd=$_POST["Password"];
 4 echo $uname;
 5 $query_str="SELECT * FROM  test_table where username='$uname' and password='$pwd';";
 6 $mysqli = new mysqli("127.0.0.1", "oyyx", "20164309", "oyyx");
 7 $query_str1="use oyyx;";
 8
 9 /* check connection */
10 if ($mysqli->connect_errno) {
11     printf("Connect failed: %s\n", $mysqli->connect_error);
12     exit();
13 }
14 echo "connection ok!";
15 /* Select queries return a resultset */
16 if ($result = $mysqli->query($query_str1))
17 echo"<br>Success into database!";
18 echo$uname;
19 if ($result = $mysqli->query($query_str)) {
20     if ($result->num_rows > 0 ){
21             echo "<br> {$uname}:Welcome!!! <br> ";
22     }
23     else {
24         echo "<br> login failed!!!! <br> " ; }
25     /* free result set */
26     $result->close();
27 }
28 $mysqli->close();
29 ?>

注意,这里的action,需要选择结合mysql写成的login.php。

注意,这里需要选择之前创建的表test_login。

输入数据库中的账号密码,登录成功。

5.最简单的SQL注入

在用户名框中输入 ' or 1=1 ,密码随意输入

这是因为,输入的用户名和我们的代码中select语句组合起来变成了 select * from users where username='' or 1=1#' and password='' ,#相当于注释符,会把后面的内容都注释掉,而1=1是永真式,所以这个条件永远成立,所以不管密码是否输入正确,都能够成功登陆。

6.XSS攻击测试

在用户名框中输入 <img src="1.jpg" />20164309</a> ,密码随意输入。

在Login.php中有一个echo uname。而uname是从前端接收的usename,当我们在用户名输入上面那句话的时候就会讲这句话原封不动的传给后台,然后在echo语句中被执行。显示当前文件夹中的图片。

转载于:https://www.cnblogs.com/20164309-kx/p/10852174.html

Exp8 web基础相关推荐

  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. koa2+vue实现登陆以及是否登陆控制
  2. python作用域-Python之函数作用域
  3. 利用iframe无刷新上传文件的坑
  4. geometry-api-java 学习笔记(三)多点 multipoint
  5. 「数据ETL」从数据民工到数据白领蜕变之旅(三)-除了Excel催化剂之外PowerQuery新物种同样值得期待...
  6. 如何用Python进行大数据挖掘和分析
  7. tp3 跨域_vue 跨域访问tp3接口,tp3 I()方法无法获取前端请求数据
  8. android view stop,android – onDestroyView片段永远不会在onStop之后调用
  9. def __init__(self)是什么意思_一文搞懂什么是Python的metaclass
  10. unix系统中查看端口号被占用
  11. linux酷q运行不了,Linux上使用docker运行酷Q机器人
  12. 粒子群算法求解0-1背包问题
  13. 实现elementUI多语言切换
  14. hr标签html样式,hr标签样式修改及美化(css的hr标签实现精美线条)
  15. eclipse Strut2环境搭建
  16. 位置信息、定位技术与位置服务
  17. laravel短信验证接口思路
  18. excel时间双击后公式才计算机,(excel为什么需要双击每个单元格以后才能运算公式?)excel表格双击后数据...
  19. 爬虫清洗:python strip()函数 去空格\n\r\t函数的用法
  20. 一个35岁技术经理的忠告:在职场多点雷霆手段,少点菩萨心肠!

热门文章

  1. cocoapods Analyzing dependencies 问题的解决方案
  2. 用vim看代码的常用指令
  3. 数据库:内联接,外联接,空值和联接
  4. Extjs4 radiogroup打开时的被选中值设置为变量
  5. 整理分析自己的软考过程
  6. android 适合mvp模式,Android中的MVP:如何使Presenter层系统化?
  7. * 图形例子,函数实现体会地址传递
  8. 7-67 使用二维数组实现Matrix(矩阵)。 (60 分)
  9. linux删除物理卷命令,如何安全的删除Linux LVM中的PV物理卷(硬盘或分区
  10. ajax、jsonp简单封装