表單是一個包含表單元素的區域,表單元素是容許用戶在表單中(好比:文本域、下拉列表、單選框、複選框等等)輸入信息的元素,表單在網頁中主要負責數據採集功能,一個表單有三個基本組成部分:表單標籤、表單域、表單按鈕;
表單標籤(
):這裏麪包含了處理表單數據所用CGI程序的URL以及數據提交到服務器的方法;
表單域:包含了文本框、密碼框、隱藏域、多行文本框、複選框、單選框、下拉選擇框和文件上傳框等;
表單按鈕:包括提交按鈕、復位按鈕和通常按鈕,用於將數據傳送到服務器上的CGI腳本或者取消輸入,還能夠用表單按鈕來控制其餘定義了處理腳本的處理工做。php
支持HTML(超文本標記語言)、XML(可擴展標記語言)以及Python、PHP、JavaScript、ASP等衆多腳本語言。html
JavaScript、ASP、PHP、Ruby等腳本語言,ASP基於IIS WEB SERVER,是微軟的服務器端腳本技術,PHP基於APACHE WEB SERVER,與ASP有幾分相似,都是一種在服務器端執行的嵌入HTML文檔的腳本語言。前端
輸入
sudo vi/etc/apache2/ports.conf
查看apache端口狀況,更改端口號。我改成4316java
經過service apache2 start
開啓Apache,使用netstat -aptn查看確認端口占用mysql
瀏覽器中輸入localhost:4316
,登陸到Apache首頁驗證其可用web
訪問Apache工做目錄cd /var/www/html
,新建一個4316.html文件,並寫入從網上找的表單代碼:sql
登陸瀏覽器,輸入localhost:4316/4316.html
,成功出現下圖界面:數據庫
JavaScript是一種屬於網絡的腳本語言,已經被普遍用於Web應用開發,經常使用來爲網頁添加各式各樣的動態功能,爲用戶提供更流暢美觀的瀏覽效果,一般JavaScript腳本是經過嵌入在HTML中來實現自身的功能的。
DOM是文檔對象模型,DOM能夠以一種獨立於平臺和語言的方式訪問和修改一個文檔的內容和結構,換句話說,這是表示和處理一個HTML或XML文檔的經常使用方法。舉個例子,要改變頁面的某個東西,JavaScript就須要得到對HTML文檔中全部元素進行訪問的入口。這個入口,連同對HTML元素進行添加、移動、改變或移除的方法和屬性,都是經過DOM來得到的。apache
編寫驗證用戶名和密碼的規則:(好比用戶名和密碼不能爲空),代碼以下:編程
登入瀏覽器,輸入localhost:4316/4316.html
進行測試。
當沒有輸入密碼時,出現以下界面:
當沒有密碼小於6位時,出現以下界面:
三、 MySQL基礎
在web開發中咱們要用到後臺數據庫,而MySQL就是一個數據庫管理系統,相似的還有SqlServer、oracle等等,因爲MySQL是開放的,不收費,因此通常中小型網站的開發都選擇MySQL做爲網站數據庫。
先輸入/etc/init.d/mysql start
指令開啓mysql服務,輸入mysql -u root -p,並根據提示輸入密碼,默認密碼爲p@ssw0rd,進入MySQL,注意:在MySQL中輸入命令後面都要帶一個分號做爲命令結束符:
使用use 庫名;
使用咱們建立的數據庫:
輸入mysql -u root -p
,以root身份登陸,根據提示輸入密碼,默認密碼爲p@ssw0rd,進入MySQL
修改密碼
輸入use mysql;
,選擇mysql數據庫
輸入UPDATE user SET password=PASSWORD("新密碼") WHERE user='root';
更改用戶名root的密碼
輸入flush privileges;
,更新權限。
輸入insert into 表名 values('wsf','20154316');
插入數據
輸入show tables;
查看標籤:
輸入quit
退出,從新輸入mysql -u root -p
從新進入,使用新密碼登陸成功,說明修改爲功
輸入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 wsf-20154316
打開表
輸入insert into users(userid,username,password,enabled) values(1,'20154316',password("20154316"),"TRUE");
進行內容的添加
使用show databases;
查看存在的數據庫;
四、Web後端:PHP基礎
PHP是一種通用開源腳本語言,語法吸取了C語言、Java和Perl的特色,主要適用於Web開發領域。它能夠比CGI或者Perl更快速地執行動態網頁。用PHP作出的動態頁面與其餘的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比徹底生成HTML標記的CGI要高許多;PHP還能夠執行編譯後代碼,編譯能夠達到加密和優化代碼運行,使代碼運行更快。
.測試一下php。仍是在原位置新建一個php文件
*如下是一個php測試代碼:
在瀏覽器中輸入localhost:4316/4316.php
轉到這個測試界面:
簡單測試完成後,咱們能夠利用PHP和MySQL結合以前編的登陸網頁進行簡單的用戶身份認證,這裏能夠參考老師給的代碼編寫login.php,代碼以下所示:
<?php $uname=($_POST["username"]); $pwd=($_POST["password"]); /* echo $uname; */ $query_str="SELECT * FROM yqh666table where username='$uname' and password='$pwd';"; /* echo "<br> {$query_str} <br>";*/ $mysqli = new mysqli("127.0.0.1", "hqy", "20154322", "yqh666"); /* 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(); ?>
打開瀏覽器輸入localhost:4316/4316.html
登陸,輸入用戶名及密碼,會自動跳轉到4316.php
用戶名和密碼是數據庫中表中的username和password
對的用戶名和密碼:
錯誤的用戶名及密碼:
六、SQL注入攻擊
SQL注入攻擊:能夠經過在Web表單中輸入(惡意)SQL語句獲得一個存在安全漏洞的網站上的數據庫,經過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。
在登陸界面用戶名處輸入' or 1=1#
,密碼隨意,發現能夠成功登陸(在代碼中有這個語句select * from users where username='' or 1=1#' and password='' #是註釋符,將其後面的內容給註釋掉,因此只剩下前面的1=1,這是一個恆成立的式子,所以能夠成功的登陸)
七、xss攻擊
XSS攻擊:跨站腳本攻擊(Cross Site Scripting),爲不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆。故將跨站腳本攻擊縮寫爲XSS。XSS是一種常常出如今web應用中的計算機安全漏洞,它容許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。好比這些代碼包括HTML代碼和客戶端腳本。攻擊者利用XSS漏洞旁路掉訪問控制——例如同源策略(same origin policy)。這種類型的漏洞因爲被駭客用來編寫危害性更大的phishing攻擊而變得廣爲人知。對於跨站腳本攻擊,黑客界共識是:跨站腳本攻擊是新型的「緩衝區溢出攻擊「,而JavaScript是新型的「ShellCode」。
將圖片保存在/var/www/html下:
用戶名輸入<img src="20154311.jpg">123</a>
查了相關的資料後知道這是由於電腦的權限不夠,在終端中輸入chmod 777 /var/www/html/4316.jpg
授予任何權限的讀,寫,運行。最終成功了!
此次實驗用時比較久,任務量很大,須要瞭解的只是也不少,課下要學習表單網頁代碼,數據庫的創建,而且與網頁的聯繫,實驗過程當中遇到了不少麻煩,經歷了衆多坎坷以後終於作出了web的入侵,再一次的感到惡意代碼的厲害,在之後的學習中要更多的學習相關知識,避免沒必要要的網絡恐慌。