(1).Web前端HTML(0.5分)javascript
能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。php
(2).Web前端javascipt(0.5分)html
理解JavaScript的基本功能,理解DOM。编写JavaScript验证用户名、密码的规则。前端
(3).Web后端:MySQL基础:正常安装、启动MySQL,建库、建立用户、修改密码、建表(0.5分)java
(4).Web后端:编写PHP网页,链接数据库,进行用户认证(1分)mysql
(5).最简单的SQL注入,XSS攻击测试(1分)web
功能描述:用户能登录,登录用户名密码保存在数据库中,登录成功显示欢迎页面。sql
apachectl start
打开Apache服务,使用netstat -aptn
查看一下端口占用。能够看到上次实验更改的信息。localhost:80
。按理说应该能够看到上次克隆的网址,可是咱们可能会看到这个网页。出现这个网页也能够说明apache在正常运行,只是须要替换一下/var/www/html/index.html
的网页。具体网页信息可看:翻译。cd /var/www/html
进入到Apache的工做目录下,vi test.html
新建一个含有表单的html:<html> <head> <title>login</title> </head> <body> <form name=form method=post action=#> <table> <tr> <td colspan=2>Login interface</td> </tr> <tr> <td>user:</td> <td><input type=text name=user size=16></td> </tr> <tr> <td>pwd:</td> <td><input type=password name=pwd size=16></td> </tr> <tr> <td colspan=2><input type=submit value=submit></td> </tr> </table> </form> </body> </html>
POST方式,数据放置在HTML HEADER内提交,数据在URL中看不到 GET只能传输比较少的数据,安全性较低,POST传输数据较多,安全性也比GET高
JavaScript是一种属于网络的脚本语言,已经被普遍用于Web应用开发,经常使用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果,一般JavaScript脚本是经过嵌入在HTML中来实现自身的功能的。数据库
咱们可使用JavaScript来编写一个验证用户名、密码的规则:检查页面中的登陆用户名,密码是否为空,且密码长度很多于6。apache
代码以下:
/etc/init.d/mysql start
指令开启mysql服务,输入mysql -u root -p
,并根据提示输入密码,默认密码为p@ssw0rd
,进入MySQL。use mysql
;,选择mysql数据库;输入update user set password=PASSWORD("20155205") where user='root';
,修改密码;输入flush privileges;
,更新权限;create database hby_exp;
创建一个数据库;使用show databases;
查看存在的数据库;使用use hby_exp;
使用咱们建立的数据库:(千万不要忘记语句后的“;”)create table 表名 (字段设定列表);
创建数据库表,并设置字段基本信息;使用show tables;
查看存在的数据表insert into 表名 values('值1','值2','值3'...);
插入数据;使用select * from 表名
查询表中的数据:grant select,insert,update,delete on hby_exp.* to amy2@localhost identified by "222";
指令,这句话的意思是将对某数据库的全部表的select,insert,update,delete权限授予某ip登陆的某用户:<?php echo ($_GET["a"]); include($_GET["a"]); echo "This is 20155205hby's php test page!<br>"; ?>
localhost:80/test.php?a=/etc/passwd
,可看到/etc/passwd
文件的内容localhost:80/login.html
访问本身的登陆页面.' or 1=1#
,密码随便输入,是能够登录成功的。咱们还能够经过SQL注入将用户名和密码保存在数据库中,可是得修改一下以前的代码,由于咱们以前编的代码中if ($result = $mysqli->query($query_str))
这条判断语句不容许多条sql语句执行,因此将它改为if ($result = $mysqli->multi_query($query_str))
便能实现执行多个sql语句
在用户名输入框中输入';insert into users values('5205','20155205');#
,接着登陆会看到失败
可是已经插入到咱们的数据库表中
/var/www/html
目录<img src="hhh.jpeg" />hhh</a>
读取/var/www/html
目录下的图片:经过浏览器执行,从而达到攻击目的,仅仅对当前页面产生影响。
新建一个test.php,输入下面的代码,即在url中插入一段js代码
localhost/test.php
会显示下图中的页面http://localhost/test.php?name=guest<script>alert('attacked')</script>
,简单输出alert对话框http://localhost/test.php?name= <script> window.onload = function() { var link=document.getElementsByTagName("a");link[0].href="http://attacker-site.com/";} </script>
http://localhost/test.php? name=%3c%73%63%72%69%70%74%3e%77%69%6e%64%6f%77%2e%6f%6e%6c%6f%61%64%20%3d%20%66%75%6e%63%74%69%6f%6e%28%29%20%7b%76%61%72%20%6c%69%6e%6b%3d%64%6f%63%75%6d%65%6e%74%2e%67%65%74%45%6c%65%6d%65%6e%74%73%42%79%54%61%67%4e%61%6d%65%28%22%61%22%29%3b%6c%69%6e%6b%5b%30%5d%2e%68%72%65%66%3d%22%68%74%74%70%3a%2f%2f%61%74%74%61%63%6b%65%72%2d%73%69%74%65%2e%63%6f%6d%2f%22%3b%7d%3c%2f%73%63%72%69%70%74%3e
(1)什么是表单
(2)浏览器能够解析运行什么语言。
(3)WebServer支持哪些动态语言
此次实验遇到了不少问题,都是虚拟机配置出了错,因此途中换了两次虚拟机。最后本身在网上找了一些关于sql和xss的资料,挑了较简单的(不须要从新搭环境的)作了一下,仍是很有收获的。