(1)Web前端HTMLjavascript
安装、启停Apache。理解GET与POST方法,编写一个含有表单的HTML。php
(2)Web前端javascipthtml
理解JavaScript的基本功能,理解DOM。编写JavaScript验证用户名、密码的规则。前端
(3)Web后端:MySQL基础:正常安装、启动MySQL,建库、建立用户、修改密码、建表java
(4)Web后端:编写PHP网页,链接数据库,进行用户认证mysql
(5)最简单的SQL注入,XSS攻击测试web
(1)什么是表单sql
表单:能够收集用户的信息和反馈意见,是网站管理者与浏览者之间沟通的桥梁。 表单包括两个部分:一部分是HTML源代码用于描述表单(例如,域,标签和用户在页面上看见的按钮),另外一部分是脚本或应用程序用于处理提交的信息(如CGI脚本)。不使用处理脚本就不能搜集表单数据。数据库
表单一般是交由CGI(公共网关接口)脚本处理。CGI是一种在服务器和处理脚本之间传送信息的标准化方式。CGI脚本比较典型的是使用Perl语言编写,固然也有其余语言如C++,Java,VBScript或JavaScript。在建立交互表单以前,接洽您的ISP或服务器管理员以确认CGI脚本能够在您的服务器上运行。
表单由文本域、复选框、单选框、菜单、文件地址域、按钮等表单对象组成,全部的部分都包含在一个由标识符标志起来的表单结构中。
表单的种类有注册表、留言薄、站点导航条、搜索引擎等。apache
(2)浏览器能够解析运行什么语言。
支持HTML(超文本标记语言)、XML(可扩展标记语言)以及Script、Python、PHP、ASP等众多脚本语言。
(3)WebServer支持哪些动态语言
php、asp、java、ruby等
·apachectl start
命令开启Apach,使用netstat -aptn
命令查看端口占用:
·vi /etc/apache2/ports.conf
进入vi修改80端口为5228
·而后在浏览器中输入localhost:5228
,发现能够进入上一实验完成的网页
·在var/www/html目录下,建立一个HTML文件,
<html> <head> <title>test</title> </head> <body> <table> <form method ="POST" action="#" name="frmLogin" > <tr> <td>user:</td> <td><input type="text" name="username" value="Your name" size="20" maxlength="20" /></td> <td> </td> <td> </td> </tr> <tr> <td>password:</td> <td><input type="password" name="password" value="Your password" size="20" maxlength="20" /></td> <td> </td> <td> </td> <table> <tr> <td><input type="submit" name="login" value="login" /></td> <td><input type="reset" name="rs" value="reset" /></td> </tr> </table> </form> </table> </body> </html>
浏览器打开localhost:5228/test.html
网页进入
•JavaScript是一种属于网络的脚本语言,已经被普遍用于Web应用开发,经常使用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果,一般JavaScript脚本是经过嵌入在HTML中来实现自身的功能的。
•DOM是文档对象模型,DOM能够以一种独立于平台和语言的方式访问和修改一个文档的内容和结构,换句话说,这是表示和处理一个HTML或XML文档的经常使用方法。举个例子,要改变页面的某个东西,JavaScript就须要得到对HTML文档中全部元素进行访问的入口。这个入口,连同对HTML元素进行添加、移动、改变或移除的方法和属性,都是经过DOM来得到的。
·将test.html文件增长一段
<script language="javascript"> function validateLogin(){ var sUserName = document.frmLogin.username.value ; var sPassword = document.frmLogin.password.value ; if ((sUserName =="") || (sUserName=="Your name")){ alert("ERROR!"); return false ; } if ((sPassword =="") || (sPassword=="Your password")){ alert("ERROR!"); return false ; } } </script>
再次登陆没输入帐号密码就会弹出
·建立一个php格式文件,代码为:
<?php echo ($_GET["A"]); include($_GET["A"]); echo "this is 20145228 first php page!<br>"; ?>
·浏览器进入localhost:5228/5228test.php
·/etc/init.d/mysql start
打开mysql服务
·mysql -u root -p
进入MySQL:,默认密码为p@ssw0rd
·show databases;
查看信息
·修改密码按以下步骤执行:
·use mysql;
,选择mysql数据库
·select user, password, host from user;
,
·UPDATE user SET password=PASSWORD("新密码") WHERE user='root';
·flush privileges;
,更新权限
·quit
退出
·以下指令建立新表:
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 '');
·表中添加内容按以下指令
use 刚刚创建的库表的表名
insert into users(userid,username,password,enabled) values(1,'用户id',password("用户密码"),"TRUE");
核对一下信息
•网页登陆页面:
<html lang="en"> <head> <meta charset="UTF-8"> <title>login</title> <script type="text/javascript"> $("#login-button").click(function(event){ event.preventDefault(); $('form').fadeOut(500); $('.wrapper').addClass('form-success'); }); function check(){ { if(form.username.value == "") { alert("您尚未填写用户名!"); form.username.focus(); return false; } if(form.pass.value == "") { alert("您尚未填写密码!"); myform.pass.focus(); return false; } } </script> </head> <body> <div class="wrapper"> <div class="container"> <h1>Welcome</h1> <form name='form' class="form" method='get' action='login.php' onSubmit="return check()"> <input type="text" placeholder="Username" name='username'> <input type="password" placeholder="Password" name='password'> <button type="submit" id="login-button" name='submit' value='submit'>Login</button> <button type="submit" id="register-button"><a href="register.html" class="cc">register</a></button> </form> </div> </div> </body> </html>
php页面:
<?php $uname=($_GET["username"]); $pwd=($_GET["password"]); echo $uname; $query_str="SELECT * FROM users where username='{$uname}' and password=password('{$pwd}');"; echo "<br> {$query_str} <br>"; $mysqli = new mysqli("127.0.0.1", "root", "5228", "j_5228"); /* check connection */ if ($mysqli->connect_errno) { printf("Connect failed: %s\n", $mysqli->connect_error); } else echo "lalalademaxiya.<br>"; if ($result1= $mysqli->multi_query($query_str)) echo "lalalajiecaobujianle <br> "; $mysqli->close(); $mysqli = new mysqli("127.0.0.1", "root", "5228", "j_5228"); /* check connection */ if ($mysqli->connect_errno) { printf("Connect failed: %s\n", $mysqli->connect_error); exit(); } echo "connection ok!"; /* Select queries return a resultset */ if ($result = $mysqli->query($query_str)) { if ($result->num_rows > 0 ){ echo "<br> Wellcome login Mr/Mrs:{$uname} <br> "; } else { echo "<br> login failed!!!! <br> " ; } /* free result set */ $result->close(); } $mysqli->close(); ?>
·链接成功,输入正确用户名密码:
·输入错误信息:
·永真式注入
·直接在用户名处输入' or 1=1#
在用户名处输入<img src="5228.jpg" />20145228</a>
能够将5228.jpg在网页中打开
本次实验涉及到了网络编程的知识,回顾了老知识的同时,也学习了许多Web应用的一些基础,以及简单的SQL注入,XSS攻击测试等网络攻击知识,难度稍微较大,但也更有意思了。