20155325 Exp8 Web基礎

實驗要求

(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

課題負責人須要完成:登錄後能夠發貼;會話管理。數據庫

報告內容

基礎問題回答

(1)什麼是表單apache

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

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

支持HTML(超文本標記語言)、XML(可擴展標記語言)以及Python、PHP、JavaScript、ASP等衆多腳本語言。

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

最經常使用的三種動態網頁語言有ASP(ActiveServerPages),JSP(JavaServerPages),PHP(HypertextPreprocessor)。

ASP

Active Server Pages,是MicroSoft公司開發的服務器端腳本環境,可用來建立動態交互式網頁並創建強大的web應用程序。當服務器收到對ASP文件的請求時,它會處理包含在用於構建發送給瀏覽器的HTML(Hyper Text Markup Language,超文本置標語言)網頁文件中的服務器端腳本代碼。除服務器端腳本代碼外,ASP文件也能夠包含文本、HTML(包括相關的客戶端腳本)和com組件調用

PHP

Hypertext Preprocessor「超文本預處理器」,是一種通用開源腳本語言。語法吸取了C語言、Java和Perl的特色,利於學習,使用普遍,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。它能夠比CGI或者Perl更快速地執行動態網頁。用PHP作出的動態頁面與其餘的編程語言相比,PHP是將程序嵌入到HTML(標準通用標記語言下的一個應用)文檔中去執行,執行效率比徹底生成HTML標記的CGI要高許多;PHP還能夠執行編譯後代碼,編譯能夠達到加密和優化代碼運行,使代碼運行更快。

JSP

Java Server Pages,中文名叫java服務器頁面,其根本是一個簡化的Servlet設計,它 [1] 是由Sun Microsystems公司倡導、許多公司參與一塊兒創建的一種動態網頁技術標準。JSP技術有點相似ASP技術,它是在傳統的網頁HTML(標準通用標記語言的子集)文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP標記(tag),從而造成JSP文件,後綴名爲(*.jsp)。 用JSP開發的Web應用是跨平臺的,既能在Linux下運行,也能在其餘操做系統上運行。

實踐總結與體會

1.各位大佬的實驗過程和原理解釋得都很是詳細啦,不須要我再作搬運工了。貼連接: 2017-2018-2 『網絡對抗技術』Exp8:Web基礎
20155201 網絡攻防技術 實驗八 Web基礎
Exp8 Web基礎

2.及時留筆記真的很重要。

以前html自覺留了筆記,如今查起來很方便。

很後悔當時配置eclipse沒有留筆記。想瞅一眼以前寫的代碼,打開eclipse以前的配置所有消失(學會wei笑)。apache2在配置方面比eclipse友好太多了。

實踐過程記錄

目錄

一波證實截圖

開啓apache2

創建表格-成功

創建登陸界面-成功

登陸成功-密碼正確

登陸失敗-密碼錯誤

簡單的sql注入

XSS攻擊-成功

個人代碼

遇到的問題及解決

something different

一波證實截圖

開啓apache2

創建表格-成功

創建登陸界面-成功

登陸成功-密碼正確

登陸失敗-密碼錯誤

簡單的sql注入

XSS攻擊-成功

查看圖片

查看文件

<a href="文件名">隨意輸的內容,點擊它能夠進入文件</a>

代碼

  • get&post

在客戶機和服務器之間進行請求-響應時,兩種最常被用到的方法是:GET 和 POST。

GET - 從指定的資源請求數據。查詢字符串(名稱/值對)是在 GET 請求的 URL 中發送的

POST - 向指定的資源提交要被處理的數據。查詢字符串(名稱/值對)是在 POST 請求的 HTTP 消息主體中發送的

因此通常用post提交密碼之類的

login2.html

<html>
<head>
<title>一個很普通的登陸界面</title>
<!-- Meta tag Keywords -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- Meta tag Keywords -->
</head>

<body bgcolor="#FFFCEC" topmargin="100" leftmargin="325">
<!-- main -->
<!--//header-->
<h2><font size=6>來吧 人類! </font></h2>
        <form action="login.php" method="post" name="form_login" >
            <input placeholder="your email" name="Email" class="user" type="text" onfocus="if (this.value=='Your email') this.value='';" />
            <br>
            </br>
            <input  placeholder="your password" name="Password" class="pass" type="password" onfocus="if (this.value=='Your password') this.value='';"/>
            <br>
            </br>
            <input type="submit" value="上岸" 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>

login.php

<?php
$uname=$_POST["Email"];
$pwd=$_POST["Password"];
echo $uname;
//$query_str="SELECT * FROM login where username='$uname' and password='$pwd';";
$query_str="SELECT * FROM login_table where username='$uname' and password='$pwd';";
$mysqli = new mysqli("127.0.0.1", "thl", "20155325", "exp8");

/* 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}:W e l c o m e~~~ <br> ";
    } 
    else {
        echo "<br> login failed (略略略) <br> " ; }
    /* free result set */
    $result->close();
}
$mysqli->close();
?>

遇到的問題及解決

something different

本身編寫的html筆記,見連接

《記憶匣子》——網絡編程jsp網頁製做複習習筆記1

關於在windows下配置eclipse中遇到的問題

以上問題解決了,但仍是有別的問題運行不了,本實驗並不須要在windows下調,暫時先放過eclipse。

自學筆記 從零開始學cookie(我的筆記)——一

url裏把符號轉化爲「%ASCII碼」的形式。

eg.%20 空格

%27 單引號

%3B分號

相關文章
相關標籤/搜索