Exp 8 Web基礎 20164314

1、實踐要求javascript

1.Web前端HTMLphp

   能正常安裝、啓停Apache。理解HTML,理解表單,理解GET與POST方法,編寫一個含有表單的HTML。html

2.Web前端javascipt前端

   理解JavaScript的基本功能,理解DOM。編寫JavaScript驗證用戶名、密碼的規則。java

3.Web後端:MySQL基礎:正常安裝、啓動MySQL,建庫、建立用戶、修改密碼、建表mysql

4.Web後端:編寫PHP網頁,鏈接數據庫,進行用戶認證web

5.最簡單的SQL注入,XSS攻擊測試sql

功能描述:用戶能登錄,登錄用戶名密碼保存在數據庫中,登錄成功顯示歡迎頁面。數據庫

2、實踐過程apache

 1.Web前端HTML

  (1)kali中已經安裝了Apache2,使用指令 service apache2 start 啓動Apache服務。

     若是開啓成功能夠看到以下:

 (2)使用 cd /var/www/html 進入Apache目錄下,並新建一個html文件20164314form.html

    html文件內容以下:

<html>

<head>

<title>CryptoTeam</title>

<!-- Meta tag Keywords -->

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<!-- Meta tag Keywords -->

</head>

 

<body>

<!-- main -->

<!--//header-->

    <h2>Login</h2>

        <form action="login" method="post">

            <input placeholder="E-mail" name="Name" class="user" type="text">

            <br>

            </br>

            <input  placeholder="Password" name="Password" class="pass" type="password">

            <br>

            </br>

            <input type="submit" value="Login">

        </form>

<!--//main-->

</body>

</html>

(3)在瀏覽器中嘗試打開

 

 

 2.Web前端javascipt

 (1)在原有 simple_form.html 基礎上,能夠添加一段JavaScript代碼,以完成對用戶是否填寫郵箱和密碼的判斷。

          修改後的 login_test.html 以下:

<html>

<head>

<title>CryptoTeam</title>

<!-- Meta tag Keywords -->

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<!-- Meta tag Keywords -->

</head>

 

<body>

<!-- main -->

<!--//header-->

    <h2>Login</h2>

        <form action="login" method="post" name="form_login">

            <input placeholder="E-mail" name="Email" class="user" type="text" onfocus="if (this.value=='Your email') this.value='';" />

            <br>

            </br>

            <input  placeholder="Password" name="Password" class="pass" type="password" onfocus="if (this.value=='Your password') this.value='';"/>

            <br>

            </br>

            <input type="submit" value="Login" onClick="return validateLogin()"/>

        </form>

<!--//main-->

<script language="javascript"> 

    function validateLogin(){ 

        var sUserName = document.form_login.Email.value ; 

        var sPassword = document.form_login.Password.value ;   

        if ((sUserName =="") || (sUserName=="Your email")){ 

        alert("user email!"); 

        return false ; 

        } 

 

        if ((sPassword =="") || (sPassword=="Your password")){ 

        alert("password!"); 

        return false ; 

        } 

 

    }  

</script> 

 

</body>

</html>

(2)在瀏覽器訪問 http://127.0.0.1/20164314form.html,若是用戶郵箱或密碼未填,網頁會報錯:

         只輸用戶郵箱:

         

         只輸密碼:

         

 

3.Web後端:MySQL基礎:正常安裝、啓動MySQL,建庫、建立用戶、修改密碼、建表

(1)輸入  /etc/init.d/mysql start  開啓MySQL服務

(2)輸入  mysql -u root -p  使用root權限進入,默認的密碼是password

       

(3)用 show databases; 查看數據庫基本信息

       

(4)輸入 use mysql; ,選擇使用mysql這個數據庫

       

(5)輸入 select user, password, host from user; 查看當前用戶信息

       

(6)輸入  update user set password=PASSWORD("20164321") where user='root';,修改密碼;

       

(7) 輸入 flush privileges; , 更新權限

       

(8)輸入 exit 退出數據庫,使用新的密碼登陸

        

(9)使用 create database gly; ,創建數據庫

(10)使用 show databases;,查看存在的數據庫

(11)使用 use gly; 使用咱們建立的數據庫;使用 create table 表名 (字段設定列表); 創建數據庫表,並設置字段基本信息

        

(12)使用  insert into 表名 values('值1','值2','值3'...); 插入數據,並使用 select * from 表名;  查詢表中的數據

(13)在MySQL中增長新用戶,使用  grant select,insert,update,delete on sql.* to username@localhost identified by "password"; 

(14)增長新用戶後,使用新的用戶名和密碼進行登陸

        

 4.Web後端:編寫PHP網頁

 1.在/var/www/html目錄下編寫一個PHP文件4314php.php,利用PHP和MySQL,結合以前編寫的登陸網頁進行登陸身份認證

   文件內容以下:

<?php

$uname=($_GET["username"]);

$pwd=($_GET["Password"]);

echo $uname;

$query_str="SELECT * FROM 4314_user where username='$uname' and password='$pwd';";

$mysqli = new mysqli("127.0.0.1", "root", "123456", "4314gly");

 

/* 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> {$uname}:Welcome!!! <br> ";

}

else {

echo "<br> login failed!!!! <br> " ; }

/* free result set */

$result->close();

}

$mysqli->close();

?>

 5.最簡單的SQL注入,XSS攻擊測試

(1)SQL注入

  SQL注入原理 是利用現有應用程序,將SQL命令注入到後臺數據庫引擎執行的能力,能夠經過在Web表單中輸入SQL語句獲得一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行SQL語句。

       在用戶名輸入框輸入 ' or 1=1# ,密碼任意輸入,可登錄成功,

      

       輸入的用戶名與select語句組合變成 select * from users where username='' or 1=1#' and password='' ,#起到註釋做用屏蔽了密碼判斷語句,而1=1是1,因此可以成功登錄。

 (2)XSS攻擊

       XSS是一種常常出如今web應用中的計算機安全漏洞,它容許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中,簡單說就是在網站任何接受正常文本輸入的地方,輸入Javascript腳本,並讓腳本執行。

       將一張名爲4314.jpg的圖片放在/var/www/html目錄下,在用戶名輸入框輸入  <img src="4314.jpg" />  ,密碼任意輸入,就能夠讀取圖片。

 

 

3、基礎問題回答

   (1)什麼是表單

       表單在網頁中主要負責數據採集功能。一個表單有三個基本組成部分: 表單標籤:這裏麪包含了處理表單數據所用CGI程序的URL以及數據提交到服務器的方法。 表單域:包含了文本框、密碼框、隱藏域、多行文本框、複選框、單選框、下拉選擇框和文件上傳框   等。表單按鈕:包括提交按鈕、復位按鈕和通常按鈕;用於將數據傳送到服務器上的CGI腳本或者取消輸入,還能夠用表單按鈕來控制其餘定義了處理腳本的處理工做。

   (2)瀏覽器能夠解析運行什麼語言

       瀏覽器能夠解析運行HTML、XML,javascript等腳本語言,對於JS腳本,會調用JS腳本引擎來處理,瀏覽器自己不處理程序代碼。

   (3)WebServer支持哪些動態語言

       Javascript、PHP、Ruby等腳本語言

 4、實踐心得

經過此次實驗,較爲快速、系統地學習了一下Web的前端和後端,並將二者結合在一塊兒使用,此次實驗能夠說和咱們的互聯網活動息息相關,天天咱們訪問的每個網頁都是一段代碼,咱們還針對代碼的漏洞進行了攻擊(雖然如今絕大多數網站都能阻止),理解了代碼的含義,我以爲是很是有意義的。

相關文章
相關標籤/搜索