日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Exp8 web基础 20154301仉鑫烨

發布時間:2024/1/17 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Exp8 web基础 20154301仉鑫烨 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

20154301 Exp8 Web基礎

仉鑫燁


一、 實踐內容

  • Web前端:HTML基礎
  • Web前端:javascipt基礎
  • Web后端:MySQL基礎
  • Web后端:PHP基礎
  • SQL注入
  • XSS攻擊測試
  • 發帖和會話管理的實現

  • 二、 基礎問題

  • 什么是表單?

    答:①表單是一個包含表單元素的區域,表單元素是允許用戶在表單中(比如:文本域、下拉列表、單選框、復選框等等)輸入信息的元素,表單在網頁中主要負責數據采集功能,一個表單有三個基本組成部分:表單標簽、表單域、表單按鈕;②表單標簽<form>:這里面包含了處理表單數據所用CGI程序的URL以及數據提交到服務器的方法;③表單域:包含了文本框、密碼框、隱藏域、多行文本框、復選框、單選框、下拉選擇框和文件上傳框等;④表單按鈕:包括提交按鈕、復位按鈕和一般按鈕,用于將數據傳送到服務器上的CGI腳本或者取消輸入,還可以用表單按鈕來控制其他定義了處理腳本的處理工作。

  • 瀏覽器可以解析運行什么語言?

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

  • WebServer支持哪些動態語言?

    答:JavaScript、ASP、PHP、Ruby等腳本語言,ASP基于IIS WEB SERVER,是微軟的服務器端腳本技術,PHP基于APACHE WEB SERVER,與ASP有幾分類似,都是一種在服務器端執行的嵌入HTML文檔的腳本語言。


  • 三、實驗過程

    (一)環境配置

    1.安裝 Apache,直接用指令sudo apt-get install apache2。apache是kali下的web服務器,通過訪問ip地址+端口號+文件名稱可以打開對應的網頁。

  • 輸入命令vi /etc/apache2/ports.conf更改apache2的監聽端口號;
  • 輸入命令apachectl start打開apahce,并使用netstat -aptn查看端口號,確認apache正確開啟,如下圖所示:

  • (二)前端編程

  • 使用cd /var/www/html在/var/www/html目錄下編輯vi test.html

  • 在firefox中輸入:http://127.0.0.1:4301/test.html就能打開該網頁。

  • 如果填寫上內容并submit,因為沒有上面代碼里標出的一行中action指定的php文件,所以會出現not found的提示:


  • (三)javascript相關

  • 相關概念:JavaScript是一種廣泛用于客戶端Web開發的腳本語言,常用來給HTML網頁添加動態功能,比如響應用戶的各種操作。
  • 文檔對象模型(Document Object Model,簡稱DOM,是W3C組織推薦的處理可擴展標志語言的標準編程接口。
  • 編寫驗證用戶名和密碼的規則:(比如用戶名和密碼不能為空)vi test1.html
  • <html> <head> <title>test</title> </head> <body> <table> <form method ="POST" action="#" name="frmLogin" > <tr> <td>Username:</td> <td><input type="text" name="username" value="Your name" size="20" maxlength="20" onfocus="if (this.value=='Your name') this.value='';" /></td> <td> </td> <td> </td> </tr> <tr> <td>Password:</td> <td><input type="password" name="password" value="Your password" size="20" maxlength="20" onfocus="if (this.value=='Your password') this.value='';" /></td> <td> </td> <td> </td> </tr> <tr> <td><input type="checkbox" name="zlogin" value="1">zidonglogin</td> </tr> <table> <tr> <td><input type="submit" name="login" value="Login" onClick="return validateLogin()"/></td> <td><input type="reset" name="rs" value="Reset" /></td> </tr></table> </form> </table> <script language="javascript"> function validateLogin(){ var sUserName = document.frmLogin.username.value ; var sPassword = document.frmLogin.password.value ; if ((sUserName =="") || (sUserName=="Your name")){ alert("Please enter the user name!"); return false ; } if ((sPassword =="") || (sPassword=="Your password")){ alert("Please enter the password!"); return false ; } } </script> </body> </html>
  • 編了一個驗證的函數,如果輸入的用戶名或者密碼為空時,就彈出相應的對話框,然后在點擊登錄按鈕時調用執行一遍這個函數,可以打開看看效果:


  • (四)PHP測試

  • 新建一個PHP測試文件vi /var/www/html/test.php輸入如下:
  • <?php echo ($_GET["A"]);include($_GET["A"]);echo "php page 4301!<br>"; ?>
  • 用瀏覽器打開http://127.0.0.1:4301/test.php,可以看見如下界面,測試成功

  • (五)MySQL基礎

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

  • 輸入mysql -u root -p,并根據提示輸入密碼,默認密碼為p@ssw0rd進入MySQL

  • 此處可以修改自己的密碼:
    • 輸入use mysql,選擇mysql數據庫

    • 輸入update user set password=PASSWORD("20154301") where user='root';
    • 輸入flush privileges;,更新權限

  • 我們先使用create database zxy_test;建立一個數據庫;使用show databases;查看存在的數據庫;使用use 庫名;使用我們創建的數據庫:

  • 接著使用create table 表名 (字段設定列表);建立數據表,數據表是數據庫中一個非常重要的對象,一個數據庫中可能包含若干個數據表;使用show tables查看存在的數據表:

    • 注意:此處一定要注意單引號和鍵盤Esc下面的那個符號不要寫錯了!!!
  • 使用insert into 表名 values('值1','值2','值3'...);插入數據;使用select * from 表名;查詢表中的數據:

  • 我們還可以在MySQL中增加新用戶,使用grant select(insert,update,delete) on 數據庫.* to 用戶名@登錄主機 identified by "密碼";指令,如圖所示,增加新用戶之后,退出,重新使用新用戶名和密碼進行登錄,登錄成功說明增加新用戶成功:


  • (六)php+mysql實現登錄網頁編寫(代碼)

  • 在/var/www/html文件夾下輸入vim login.html,編寫登錄網頁。代碼

  • 在同樣的目錄下輸入vim login.php,通過php實現對數據庫的連接

  • 在瀏覽器中輸入127.0.0.1/login.html,就可以訪問自己的登陸頁面啦,這里套用了一個模板讓頁面看起來更加美觀,登陸成功的樣子如下:

    (可惜后來出了一些BUG沒有搞清楚,又重新做了)

    • 注意:此處的用戶名是自己在庫表中新建的用戶以及對應的密碼,在上一節中我新建的用戶是:4301,密碼是20154301

    (七)SQL注入

  • SQL注入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。具體來說,它是利用現有應用程序,將(惡意的)SQL命令注入到后臺數據庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行SQL語句。
    • 在用戶名輸入框中輸入' or 1=1#,密碼隨意,這時SQL查詢語句變為select * from test_table where username='' or 1=1#' and password='',#相當于注釋符,會把后面的內容注釋掉,or后跟著的1=1永遠為真,所以必然登錄成功
  • 跨站腳本攻擊(Cross Site Scripting),為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆。故將跨站腳本攻擊縮寫為XSS。XSS是一種經常出現在web應用中的計算機安全漏洞,它允許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。比如這些代碼包括HTML代碼和客戶端腳本。攻擊者利用XSS漏洞旁路掉訪問控制——例如同源策略(same origin policy)。這種類型的漏洞由于被駭客用來編寫危害性更大的phishing攻擊而變得廣為人知。
    • 將一張圖片放在/var/www/html目錄下,在用戶名輸入框輸入<img src="20154301.jpg" />,密碼隨意,就可以讀取圖片啦:

    四、實驗體會

    • 本次實驗是我花費時間最多的一次實驗,重做了許多次,但最后收獲也非常的大。連接不上庫,代碼不會修改,修改之后又連接不上等等問題最終被一一克服,讓我對于html網頁編程有了一定的了解。最讓我感觸深的一點就是關于sql注入和xss攻擊確實是防不勝防的,我們在編寫html的時候仍必須了解一些防范知識,避免一些低級的攻擊。

    轉載于:https://www.cnblogs.com/z20154301/p/9050581.html

    總結

    以上是生活随笔為你收集整理的Exp8 web基础 20154301仉鑫烨的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。