20145301趙嘉鑫《網路對抗》Exp8 Web基礎

來源:互聯網
上載者:User

標籤:www   儲存   mysql基礎   指令   網站   網路   開啟   網域名稱   oca   

20145301趙嘉鑫《網路對抗》Exp8 Web基礎基礎問題回答什麼是表單?
  • 表單是一個包含表單元素的地區,主要負責資料擷取部分。表單元素允許使用者在表單中輸入資訊。一個表單有三個基本組成部分:表單標籤、表單域、表單按鈕;

    • 表單標籤:包含處理表單資料所用的URL以及資料提交到伺服器的方法;
    • 表單域:包含了文字框、密碼框、多行文字框、下拉選擇框等等;
    • 表單按鈕:包括提交按鈕、複位按鈕和一般按鈕。
瀏覽器可以解析運行什麼語言?
  • 支援HTML(超文字標記語言 (HTML))、XML(可延伸標記語言 (XML))以及Python、PHP、JavaScript、ASP等(指令碼語言)。
WebServer支援哪些動態語言?
  • JavaScript、ASP、PHP、Ruby等指令碼語言,
  • JSP,是一個簡化的servlet設計,其web應用有好的跨平台性。
  • ASP是微軟的伺服器端指令碼技術。
  • PHP基於APACHE WEB SERVER,是一種通用開源指令碼語言。
實踐目標

(1)Web前端:HTML基礎
(2)Web前端:javascipt基礎
(3)Web後端:MySQL基礎
(4)Web後端:PHP基礎
(5)SQL注入,XSS攻擊測試
(6)發帖和會話管理的實現 

Apache
  • 本次Web開發是基於Apache伺服器進行的。
  • 安裝指令sudo apt-get install apache2
  • 對於Apache的配置可以輸入指令 sudo vi /etc/apache2/ports.conf指令來進行修改,連接埠改到了80。
  • 指令apachectl start開啟Apache服務,使用netstat -aptn查看連接埠佔用。
  • 如果連接埠被佔用,使用netstat -tupln |grep 80指令查看80連接埠被哪些進程佔用,用kill+進程ID殺死進程
  • Apache服務開啟後,瀏覽器中輸入localhost:80進行查看,開啟了上次實驗複製的網頁,說明Apache正常工作。
HTML基礎與javascipt基礎
  • cd var/www/html進入到Apache的工作目錄下,vi 5301.html建立一個含有表單的html,所以可以編寫一個簡單的登入頁面,並使用JavaScript來編寫一個驗證使用者名稱、密碼的規則,如果輸入的使用者名稱或者密碼為空白時,就彈出相應的對話方塊。具體代碼如下
  • 前端代碼(html+js)

  • 網頁效果:

Web後端:MySQL基礎
  • 既然要登陸並驗證要涉及到到後台資料庫,MySQL就是一個資料庫管理系統,MySQL是開放的並且免費
  • 先輸入/etc/init.d/mysql start指令開啟mysql服務,輸入mysql -u root -p,並根據提示輸入密碼,大家都說預設密碼為[email protected](但我的密碼很奇怪,居然為空白。。。),進入MySQL,輸入時注意有無分號:

  • 對密碼進行修改:輸入use mysql;,選擇mysql資料庫;輸入update user set password=PASSWORD("新密碼") where user=‘root‘;

  • 輸入flush privileges;,更新許可權;

  • 接著輸入quit退出MySQL,重新進入,使用新密碼登入成功,說明修改成功:

  • 輸入create database 庫名;建立一個資料庫;使用show databases;查看存在的資料庫;使用use 庫名;使用資料庫:

  • 輸入create table 表名 ;建立資料表,使用show tables可以查看存在的資料表:

  • 輸入insert into 表名 values(‘值1‘,‘值2‘,...);插入資料;使用select * from 表名查詢表中的資料:

  • MySQL中增加新使用者,輸入grant select(insert,update,delete) on 資料庫.* to 使用者名稱@登入主機 identified by "密碼";指令,增加新使用者成功:

Web後端:PHP基礎
  • PHP是一種通用開源指令碼語言,PHP將程式嵌入到HTML文檔中去執行,執行效率比完全產生HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和最佳化代碼運行,使代碼運行更快。
  • 在/var/www/html目錄下建立5301.php

  • 利用PHP和MySQL結合之前編的登入網頁進行使用者身份認證,這裡可以參考老師給的代碼編寫login.php,代碼如下:

  • php代碼

  • 其中127.0.0.1是本機地址,root是MySQL的使用者名稱,zjx5301是我之前設定的登入密碼,zjx_test是資料庫的庫名。

  • 先將之前編的登入網頁的代碼中form的action屬性改成5301.php,在瀏覽器中輸入localhost:80/5301.html訪問登入頁面:

  • 在登入頁面中輸入資料庫中存有的使用者名稱和密碼並點擊登入進行使用者認證,如果登入成功:

  • 登入失敗:

SQL注入
  • SQL注入,就是通過把SQL命令插入到Web表單提交或輸入欄位名或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的SQL命令。通過在Web表單中輸入(惡意)SQL語句得到一個存在安全性漏洞的網站上的資料庫。

  • 在使用者名稱輸入框中輸入‘ or 1=1#,密碼隨便輸入,這時候的合成後的SQL查詢語句為select * from zjxtable where username=‘‘ or 1=1#‘ and password=‘‘,#相當於注釋符,而1=1是永真式,能夠成功登陸:

  • 還可以通過SQL注入將使用者名稱和密碼儲存在資料庫中。修改一下之前的代碼,mysqli->query($query_str))

  • 改成mysqli->multiquery($querystr))便能實現執行多個sql語句,接著在使用者名稱輸入框中輸入‘;insert into zjxtable values(‘wsc‘,‘5331‘);#,接著登入,出現如下所示頁面:

  • 我們可以在資料庫中查詢一下是否添加成功:

  • 使用新插入的使用者名稱和密碼進行登入,登入成功:

XSS攻擊測試
    • XSS攻擊:跨站指令碼攻擊。XSS是一種經常出現在web應用中的電腦安全性漏洞,它允許惡意web使用者將代碼植入到提供給其它使用者使用的頁面中。比如這些程式碼封裝括HTML代碼和用戶端指令碼。攻擊者利用XSS漏洞旁路掉存取控制——例如同源策略(same origin policy)。
    • 測試,在使用者名稱輸入框中輸入20145215讀取/var/www/html目錄下的圖片,密碼隨意輸入

    • 點擊登入後我們可以看到圖片:

20145301趙嘉鑫《網路對抗》Exp8 Web基礎

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.