首先用指令sudo apt-get install apache2
下载apache,因为实验机已经安装好Apache,这里就不演示了,对于Apache使用的端口咱们能够经过sudo vi /etc/apache2/ports.conf
指令来进行修改,上次实验中咱们就是将端口改到了80。
javascript
使用指令apachectl start
打开Apache服务,使用netstat -aptn
查看一下端口占用,因为上次修改了端口文件,因此仍是占用了80端口
php
cd ..
、cd var/www/html
进入到Apache的工做目录下,输入vi test1.html
新建一个含有表单的html,咱们经常使用的登陆页面通常就是用表单向后台提交数据,因此能够编写一个简单的登陆页面,代码以下<html> <head> <meta charset="UTF-8"> <title>test</title> </head> <body> <table> <form method ="POST" action="#" name="frmLogin" > <tr> <td>用户名:</td> <td><input type="text" name="username" value="Your name" size="20" maxlength="20" /></td> <td> </td> <td> </td> </tr> <tr> <td>密 码:</td> <td><input type="password" name="password" value="Your password" size="20" maxlength="20" /></td> <td> </td> <td> </td> </tr> <tr> <td><input type="checkbox" name="zlogin" value="1">自动登陆</td> </tr> <table> <tr> <td><input type="submit" name="login" value="登陆" /></td> <td><input type="reset" name="rs" value="重置" /></td> </tr> </table> </form> </table> </body> </html>
JavaScript是一种属于网络的脚本语言,已经被普遍用于Web应用开发,经常使用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果,一般JavaScript脚本是经过嵌入在HTML中来实现自身的功能的。html
DOM是文档对象模型,DOM能够以一种独立于平台和语言的方式访问和修改一个文档的内容和结构,换句话说,这是表示和处理一个HTML或XML文档的经常使用方法。举个例子,要改变页面的某个东西,JavaScript就须要得到对HTML文档中全部元素进行访问的入口。这个入口,连同对HTML元素进行添加、移动、改变或移除的方法和属性,都是经过DOM来得到的。前端
login_test.html
,代码以下所示<html> <head> <meta charset="UTF-8"> <title>test</title> </head> <body> <table> <form method ="POST" action="#" name="frmLogin" > <tr> <td>用户名:</td> <td><input type="text" name="username" value="Your name" size="20" maxlength="20" onfocus="if (this.value=='Your name') this.value='';" /></td> <td> </td> <td> </td> </tr> <tr> <td>密 码:</td> <td><input type="password" name="password" value="Your password" size="20" maxlength="20" onfocus="if (this.value=='Your password') this.value='';" /></td> <td> </td> <td> </td> </tr> <tr> <td><input type="checkbox" name="zlogin" value="1">自动登陆</td> </tr> <table> <tr> <td><input type="submit" name="login" value="登陆" onClick="return validateLogin()"/></td> <td><input type="reset" name="rs" value="重置" /></td> </tr> </table> </form> </table> <script language="javascript"> function validateLogin(){ var sUserName = document.frmLogin.username.value ; var sPassword = document.frmLogin.password.value ; if ((sUserName =="") || (sUserName=="Your name")){ alert("请输入用户名!"); return false ; } if ((sPassword =="") || (sPassword=="Your password")){ alert("请输入密码!"); return false ; } } </script> </body> </html>
先输入/etc/init.d/mysql start
指令开启mysql服务,输入mysql -u root -p
,并根据提示输入密码,默认密码为password
,进入MySQL,注意:在MySQL中输入命令后面都要带一个分号做为命令结束符
java
咱们能够对密码进行修改:输入use mysql;
,选择mysql数据库;输入update user set password=PASSWORD("新密码") where user='root';
,修改密码;输入flush privileges;
,更新权限
mysql
接着输入quit
退出MySQL,从新进入,使用新密码登陆成功,说明修改为功web
这个部分跟着学长的博客作完后本身在尝试的时候有发现这个密码随意输入什么都能进入mysql,在百度以后了解,mysql内默认有一个权限,就是若是从本地登录Mysql的root用户就不会进行密码认证,因此在本地不管输入什么密码都能登入mysql。
sql
咱们先使用create database 库名;
创建一个数据库;使用show databases;
查看存在的数据库;使用use 库名;
使用咱们建立的数据库数据库
在这里库名不能是纯数字!
apache
接着使用create table 表名 (字段设定列表);
创建数据表,数据表是数据库中一个很是重要的对象,一个数据库中可能包含若干个数据表;使用show tables
查看存在的数据表
使用insert into 表名 values('值1','值2','值3'...);
插入数据;使用select * from 表名
查询表中的数据
使用grant select,insert,update,delete on 数据库.* to 用户名@登陆主机 identified by "密码";
指令建立用户,如图所示,增长新用户以后,退出,从新使用新用户名和密码进行登陆,登陆成功说明增长新用户成功
能够看见把登录用户名从本地的root换为新建的用户以后,随意输入的密码不能登入。
vi login.php
,代码以下<?php $uname=$_POST["username"]; $pwd=$_POST["password"]; echo $uname; $query_str="SELECT * FROM zrq20155230 where username='$uname' and password='$pwd';"; $mysqli = new mysqli("127.0.0.1", "root", "20155230", "zrq20155230"); /* 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> Welcome login Mr/Mrs:{$uname} <br> "; } else { echo "<br> login failed!!!! <br> " ; } /* free result set */ $result->close(); } $mysqli->close(); ?>
图中红框内分别是mysql用户名、密码、数据库名,图中第五行的zrq20155230
是数据库内调用的表名。
先将以前编的登陆网页的login_test.html
代码中form
的action
属性由#
改为login.php
,即登陆后跳转到login.php
,再在浏览器中输入localhost:80/login_test.html
访问本身的登陆页面
在用户名输入框中输入' or 1=1#
,密码随便输入,这时候的合成后的SQL查询语句为select * from zrq20155230 where username='' or 1=1#' and password=''
,#
至关于注释符,会把后面的内容都注释掉,而1=1是永真式,因此这个条件确定恒成立,因此可以成功登录
咱们还能够经过SQL注入将用户名和密码保存在数据库中,可是得修改一下以前的代码,由于咱们以前编的代码将登录用户名的长度锁死在了20而且if ($result = $mysqli->query($query_str))
这条判断语句不容许多条sql语句执行,因此将它们分别在login_test.html
和login.php
中改为maxlength=20000
、if ($result = $mysqli->multi_query($query_str))
便能实现执行多个sql语句,接着在用户名输入框中输入';insert into zrq20155230 values('zn','5230');#
,拆开来看就是
SELECT * FROM zrq20155230 WHERE username=''; insert into zrq20155230 values('zn','5230');
,接着登陆,出现以下所示页面,可是!添加用户成功!
接着使用新插入的用户名和密码进行登陆,登陆失败!
怀疑是由于刚才对login.php
进行改动的缘由,再次改回去以后能登录成功!为何会出现这种状况暂时没时间去解决了!咱们往后再研究吧!
将一张图片存入/var/www/html
目录
在用户名输入框中输入<img src="psb.jpeg" />20155230</a>
读取/var/www/html
目录下的图片