1. 程式人生 > >Exp8 Web基礎 20154320 李超

Exp8 Web基礎 20154320 李超

404頁面 知識 pda 表格 sci 信息 http eight 失敗

1.實驗後回答問題

(1)什麽是表單.

  • 表單是一個包含表單元素的區域,表單元素是允許用戶在表單中輸入信息的元素,表單在網頁中主要負責數據采集功能,一個表單有三個基本組成部分:表單標簽、表單域、表單按鈕。

(2)瀏覽器可以解析運行什麽語言.

  • HTML(超文本標記語言)
  • XML(可擴展標記語言)
  • ASP、Python、PHP、JavaScript等眾多腳本語言。

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

  • JavaScript、ASP、PHP、Ruby等腳本語言。

2.實驗總結與體會

  • 雖然這次實驗基本滿足了要求,不過我覺得我的前端做得太簡單了,課下應該多花時間再研究研究。菜鳥教程上有很多實例,用起來也很方便,左邊是代碼,右邊就是呈現的效果。 數據庫這門課要認真學一學。正是由於對這部分知識的不熟,導致我在實驗過程中犯了許多不應該有的錯誤,也因此浪費了很多時間。不過還好實驗成功了,在解決問題的這個過程中,我確實蠻有收獲,感觸頗深。

3.實踐過程記錄

(1).Web前端HTML(1分)

  • 通過service apache2 start開啟Apache2服務
  • 使用netstat -aptn查看端口占用情況,將端口改為4320
  • 技術分享圖片

  • 技術分享圖片

  • 測試apache是否正常工作?
  • 在kali的firefox瀏覽器上輸入localhost:4320
  • 訪問Apache工作目錄cd /var/www/html,新建一個html文件
  • 編寫一個含有表單的html

技術分享圖片

技術分享圖片

技術分享圖片

  • 在文本框內輸入相關信息,然後點擊Submit按鈕數據會傳送到html_form_action.php 的頁面,由於沒有對此頁面進行編寫,所以出現的是404頁面。

(2).Web前端javascipt(1分)

  • JavaScript是一種用於客戶端Web開發的腳本語言,被數百萬計的網頁用來改進設計、驗證表單、檢測瀏覽器、創建cookies。
  • 文檔對象模型(Document Object Model,簡稱DOM)是W3C組織推薦的處理可擴展標誌語言的標準編程接口。
  • 我們可以用JavaScript來編寫一個簡單的程序。

技術分享圖片

效果顯示:

技術分享圖片

(3).Web後端:MySQL基礎:正常安裝、啟動MySQL,建庫、創建用戶、修改密碼、建表(1分)

  • 開啟sql服務:/etc/init.d/mysql start

  • 輸入mysql -u root –p

    ,並根據提示輸入密碼,默認密碼為p@ssw0rd,進入MySQL

技術分享圖片

  • 輸入show databases;,可以查看基本信息

技術分享圖片

  • 如果覺得密碼太麻煩了,可以通過如下方式更改:
    • 輸入use mysql;,選擇mysql數據庫
    • 輸入select user, password, host from user;mysql庫中的user表中存儲著用戶名、密碼與權限
    • 輸入UPDATE user SET password=PASSWORD("新密碼") WHERE user=‘root‘;
    • 輸入flush privileges;,更新權限
    • 輸入quit退出,然後重新登錄

技術分享圖片

技術分享圖片

使用指令 show tables; 查看表格,輸入 describe 表名;可以查看表內設定的參數。

技術分享圖片

使用指令 insert into cctable values(‘ ‘); 插入數據,使用select指令可以查看到我們添加的數據。

技術分享圖片

4、Web後端:PHP基礎

  • PHP是一種通用開源腳本語言,語法吸收了C語言、Java和Perl的特點,主要適用於Web開發領域。它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
  • 我們可以在/var/www/html目錄下新建一個PHP測試文件,簡單了解一下它的一些語法:

技術分享圖片

  • 瀏覽器打開localhost、4320.php可以看到:

技術分享圖片

  • 簡單測試完成後,我們可以利用PHP和MySQL結合之前編的登錄網頁進行簡單的用戶身份認證,這裏可以參考老師給的代碼編寫login.php,代碼如下所示

技術分享圖片

  • 最初失敗了

技術分享圖片

  • 使用grant select,insert,update,delete on 數據庫名.* to 用戶名@localhost, identified by "密碼";這句話的意思是將對某數據庫的所有表的select,insert,update,delete權限授予某ip登錄的某用戶。

技術分享圖片

  • 將這一步完成後繼續進行下面的步驟,順利完成。

  • 打開瀏覽器輸入localhost:4320/cc123.html登錄,輸入用戶名及密碼,會自動跳轉到cc4328.php
    用戶名和密碼是數據庫中表中的username和password

技術分享圖片

6、SQL註入攻擊

  • SQL註入攻擊:可以通過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的數據庫,通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。
  • .在登錄界面用戶名處輸入‘ or 1=1#,密碼隨意,發現可以成功登錄(在代碼中有這個語句select * from users where username=‘‘ or 1=1#‘ and password=‘‘ #是註釋符,將其後面的內容給註釋掉,所以只剩下前面的1=1,這是一個恒成立的式子,因此可以成功的登錄)

技術分享圖片

  • 將login.php文件中if($result = $mysqli->query($query_str))改為if ($result = $mysqli->multi_query($query_str))實現執行多個sql語句
  • 在用戶名輸入框中輸入‘;insert into cc321 values(‘lc‘,‘4320‘);#SELECT * FROM cc321 WHERE username=‘‘ insert into cc321 values(‘lc‘,‘4320‘);

  • 提示登錄失敗

技術分享圖片

  • 到數據庫裏查看表的內容就發現多了一條用戶信息,下次就可直接用這條用戶信息登錄。

技術分享圖片

7、xss攻擊

  • XSS攻擊:跨站腳本攻擊(Cross Site Scripting),為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆。故將跨站腳本攻擊縮寫為XSS。XSS是一種經常出現在web應用中的計算機安全漏洞,它允許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。比如這些代碼包括HTML代碼和客戶端腳本。攻擊者利用XSS漏洞旁路掉訪問控制——例如同源策略(same origin policy)。這種類型的漏洞由於被駭客用來編寫危害性更大的phishing攻擊而變得廣為人知。對於跨站腳本攻擊,黑客界共識是:跨站腳本攻擊是新型的“緩沖區溢出攻擊“,而JavaScript是新型的“ShellCode”。
  • 將圖片保存在/var/www/html下

  • 在終端中輸入chmod 777 /var/www/html/20154320.jpg 授予任何權限的讀,寫,運行。

技術分享圖片

  • 再次運行後出現圖片

技術分享圖片

Exp8 Web基礎 20154320 李超