(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的資料,挑了較簡單的(不須要從新搭環境的)作了一下,仍是很有收穫的。