2017-2018-2 20155225《網絡對抗技術》實驗八 Web基礎

2017-2018-2 20155225《網絡對抗技術》實驗八 Web基礎

一、Web前端HTML

輸入命令apachectl start打開apahce,並使用netstat -aptn查看端口號,確認apache啓動成功,如圖所示,監聽端口是80:javascript

image

在瀏覽器裏輸入http://127.0.0.1,能夠訪問到Apache默認頁面,證實Apache能夠正常工做。php

image

.測試:apache可讀取工做目錄下的文件css

在/var/www/html/目錄下,寫一個測試的txt文檔,在瀏覽器裏打開127.0.0.1/test.txt,可看到test.txt的內容,如圖:html

image

寫一個有表單提交的網頁:前端

在/var/www/html/目錄下,寫一個html文件:java

<html>
<body>

<form action="/demo/demo_form.asp">
User name:<br>
<input type="text" name="un" value="20155225">
<br>
Password:<br>
<input type="password" name="pw" >
<br><br>
<input type="submit" value="Submit">
</form> 

</body>
</html>

用瀏覽器打開效果以下:mysql

image

再給它增長一個彩色的css:web

<head>
        <meta charset="utf-8">
        <style>
            body
                {
                    background-color:#d0e4fe;
                }
            input
                {
                    color:orange;
                    text-align:center;
                }
        </style>
    </head>

效果如圖:sql

image

二、web前端,JavaScript

用JavaScript檢查一下,用戶名密碼的位數有沒有超過規定值。數據庫

<script>

function inputTest(){

    if (document.getElementById("1").value.length<=8){
        return true
    } else {
       alert("The student number cannot exceed 8!")
            return false;
    }

}

    </script>

學號不能超過8位,若是超過8位會提示:

image

三、web後端,php

在/var/www/html/目錄下,寫一個test.php,進行測試:

<?php
echo "個人第一段 PHP 腳本!";
?>

image

嘗試寫了一個php,接受前端傳過來的用戶名,並打印出來:

<html>
<body>

Welcome <?php echo $_POST["un"]; ?><br>

</body>
</html>

成功跳轉到php,如圖所示:

image

四、web後端,mysql

開啓MySQL服務,使用root權限進入,默認的密碼是password

image

使用create database user;新建user數據庫,並用show databases;查看數據庫

image

使用use user;命令使用user數據庫,同時,使用create table login (字段設定列表);創建數據庫表,並設置字段基本信息:

image

使用insert into login values('201155225','jzy123');插入數據:

image

grant select on user.login to river@localhost identified by "1";將對user.login進行查詢的權限賦給本機登陸的River用戶。

image

五、php+mysql

綜合運用php和mysql,實現將前端用戶名和口令,傳到後端php,在php中鏈接數據庫,進行查詢,並返回查詢結果。

<?php
$uname=$_POST["un"];
$pwd=$_POST["pw"];
echo "welcome";
 echo $uname;
$query_str="SELECT * FROM login where username='$uname' and password='$pwd';";
$mysqli = new mysqli("127.0.0.1", "river", "1", "user");

/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

/* Select queries return a resultset */
if ($result = $mysqli->query($query_str)) {
    if ($result->num_rows > 0 ){
            echo "<br> login success! <br> ";
    } 
    else {
        echo "<br> login failed! <br> " ; }
    /* free result set */
    $result->close();
}
$mysqli->close();
?>

登陸成功!

image

六、SQL注入和XSS攻擊

  1. sql注入:

後臺sql語句爲SELECT * FROM login where username='$uname' and password='$pwd';

若是輸入用戶名時,輸入爲20155225'#,那後面口令就被註釋掉了。

image

  1. xss攻擊:

在用戶名輸入框輸入 < img src="20155225.jpg" />,對應到php中,就是echo < img src="20155225.jpg" /> ,而後既能夠查看到圖片了。

開始嘗試的時候,攻擊成功了,但圖片一直加載不出來,後來給圖片加上權限就能夠了。

image

實驗問題回答

1.什麼是表單

表單能夠收集用戶的信息和反饋意見,是網站管理者與瀏覽者之間溝通的橋樑。

一個表單有三個基本組成部分: 表單標籤

表單域:包含了文本框、密碼框、隱藏域、多行文本框、複選框、單選框、下拉選擇框和文件上傳框等

表單按鈕:包括提交按鈕、復位按鈕和通常按鈕.

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

超文本標記語言:HTML

可擴展標記語言:XML

腳本語言:ASP、PHP、Script、JavaScript、VBScript、Perl、Python、ColdFusion、Java、JSP等

3.WebServer支持哪些動態語言

比較經常使用的有PHP語言和JSP語言。

實驗總結與體會

第一次接觸了SQL注入、XSS注入攻擊,這些注入很是巧妙,簡直防不勝防,因此web安全有很是廣闊的探索空間,進一步學習web安全,要更加努力了!

相關文章
相關標籤/搜索