Web安全與防護 (微課版) 課件 03-1 項目三 任務(wù)一登錄認證功能實現(xiàn)_第1頁
Web安全與防護 (微課版) 課件 03-1 項目三 任務(wù)一登錄認證功能實現(xiàn)_第2頁
Web安全與防護 (微課版) 課件 03-1 項目三 任務(wù)一登錄認證功能實現(xiàn)_第3頁
Web安全與防護 (微課版) 課件 03-1 項目三 任務(wù)一登錄認證功能實現(xiàn)_第4頁
Web安全與防護 (微課版) 課件 03-1 項目三 任務(wù)一登錄認證功能實現(xiàn)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

項目三

安全的數(shù)據(jù)庫交換Web安全與防護本任務(wù)要點學(xué)習(xí)目標(biāo)SQL的基本操作。動態(tài)網(wǎng)頁的實現(xiàn)方法。能夠?qū)崿F(xiàn)數(shù)據(jù)庫的增刪查改。能夠使用PHP實現(xiàn)數(shù)據(jù)庫交互功能。任務(wù)一

登錄認證功能實現(xiàn)目錄CONTENTS01/熟悉SQL的基本操作02/熟悉動態(tài)網(wǎng)頁的實現(xiàn)方法SQL的基本操作01什么是數(shù)據(jù)庫?數(shù)據(jù)庫是指按照一定數(shù)據(jù)模型組織、存儲和管理數(shù)據(jù)的集合。常見的數(shù)據(jù)庫有關(guān)系型數(shù)據(jù)庫(如MySQL、Oracle、SQLServer等)和非關(guān)系型數(shù)據(jù)庫(如MongoDB、Redis、Cassandra等)。關(guān)系型數(shù)據(jù)庫是目前應(yīng)用最廣泛的數(shù)據(jù)庫之一,其數(shù)據(jù)以表格的形式進行組織和存儲,由多個數(shù)據(jù)表之間的關(guān)系來表達數(shù)據(jù)間的聯(lián)系。SQL是關(guān)系型數(shù)據(jù)庫最常用的查詢語言,可用于對數(shù)據(jù)庫中的數(shù)據(jù)進行增刪改查等操作。常用的SQL命令包括:SELECT:查詢數(shù)據(jù)、INSERT:插入數(shù)據(jù)、UPDATE:更新數(shù)據(jù)、DELETE:刪除數(shù)據(jù)SELECT:查詢數(shù)據(jù)的基本用法完整代碼見教材2.4.1INSERT:插入數(shù)據(jù)的基本用法SQL的基本操作01SELECTcolumn1,column2,...FROMtable_nameWHEREcondition;SELECT語句用于從一個或多個表格中選取數(shù)據(jù),并返回查詢結(jié)果。其中,column1,column2,

...表示需要查詢的列名,table_name表示要查詢的表格名稱

,condition表示查詢條件。SELECT*FROMusers;例如,查詢一個名為users的表格中的所有數(shù)據(jù):INSERT語句用于向一個表格中插入新數(shù)據(jù)。其中,table_name表示要插入數(shù)據(jù)的表格名稱,column1,column2,...表示需要插入數(shù)據(jù)的列名,value1,value2,...表示要插入的數(shù)據(jù)值。INSERT

INTOtable_name(column1,column2,...)VALUES(value1,value2,...);例如,向一個名為users的表格中插入一條新數(shù)據(jù),其username列的值為"Tom",password列的值為"123456"。INSERT

INTOusers(username,password)VALUES('Tom','123456');UPDATE:更新數(shù)據(jù)的基本用法完整代碼見教材2.4.1DELETE:刪除數(shù)據(jù)的基本用法SQL的基本操作01UPDATE語句用于更新一個或多個表格中的數(shù)據(jù)。其中,table_name表示要更新數(shù)據(jù)的表格名稱,column1=value1,column2=value2,...表示需要更新的列名和對應(yīng)的數(shù)據(jù)值,condition表示更新數(shù)據(jù)的條件。例如,將一個名為users的表格中,username為"Tom"的記錄的password更新為"654321"。INSERT語句用于向一個表格中插入新數(shù)據(jù)。其中,table_name表示要插入數(shù)據(jù)的表格名稱,column1,column2,...表示需要插入數(shù)據(jù)的列名,value1,value2,...表示要插入的數(shù)據(jù)值。例如,向一個名為users的表格中插入一條新數(shù)據(jù),其username列的值為"Tom",password列的值為"123456"。UPDATEtable_nameSETcolumn1=value1,column2=value2,...WHEREcondition;UPDATEusersSET

password='654321'

WHEREusername='Tom';DELETE

FROMtable_nameWHEREcondition;DELETE

FROMusersWHEREusername='Tom';什么是動態(tài)網(wǎng)頁?動態(tài)頁面通常指的是網(wǎng)頁內(nèi)容不是靜態(tài)的,而是根據(jù)用戶請求、數(shù)據(jù)庫查詢結(jié)果或其他實時數(shù)據(jù)生成的。動態(tài)頁面通過服務(wù)器端腳本、數(shù)據(jù)庫、模板引擎、框架、CMS、API和云服務(wù)等技術(shù)實現(xiàn),以提供個性化和交互性強的用戶體驗。動態(tài)網(wǎng)頁的實現(xiàn)方法02Python提供了一個名為“sqlite3”的內(nèi)置模塊來連接和操作SQLite數(shù)據(jù)庫。此外,Python還有流行的庫它們提供了更高級別的抽象,使開發(fā)人員可以更容易地與多種數(shù)據(jù)庫交互。PythonJava開發(fā)人員通常使用JavaDatabaseConnectivity(JDBC)API來連接和操作數(shù)據(jù)庫。JDBC是Java平臺的標(biāo)準API,提供了一組標(biāo)準接口,用于連接到不同類型的數(shù)據(jù)庫。JavaC#開發(fā)人員通常使用.NETFramework中的ADO.NET庫來連接和操作數(shù)據(jù)庫。ADO.NET提供了一組用于連接到不同類型數(shù)據(jù)庫的類和接口,開發(fā)人員可以使用這些類和接口來執(zhí)行常見的數(shù)據(jù)庫操作。C#PHP開發(fā)人員通常使用PHPDataObjects(PDO)擴展庫來連接和操作數(shù)據(jù)庫。PDO提供了一個跨數(shù)據(jù)庫的抽象層,使開發(fā)人員可以更輕松地在不同的數(shù)據(jù)庫之間切換,并且可以使用相同的API來執(zhí)行常見的數(shù)據(jù)庫操作。PHP動態(tài)網(wǎng)頁的實現(xiàn)方法02在Web應(yīng)用程序中,用戶身份的認證是必不可少的。通常情況下,用戶的身份信息需要存儲在數(shù)據(jù)庫中。首先,我們需要在數(shù)據(jù)庫中創(chuàng)建一個表來存儲用戶的身份信息。為了保證密碼的安全性,通常將密碼加密后存儲在數(shù)據(jù)庫中。完整代碼見教材3.1.2動態(tài)網(wǎng)頁的實現(xiàn)方法02我們需要校驗用戶提供的用戶名和密碼是否正確,可以從blog_admin表中查詢數(shù)據(jù)庫中記錄的用戶名和密碼與用戶提交的用戶名和密碼是否一致。SELECT*FROMblog_adminWHEREusername=?AND

password=?為了保證系統(tǒng)的安全性,我們需要對用戶輸入的敏感信息使用MD5算法進行加密。接著,我們通過SQL語句查詢數(shù)據(jù)庫中是否有對應(yīng)的記錄。如果存在,則說明用戶輸入的用戶名和密碼是正確的;否則,就說明輸入的用戶名或密碼有誤。完整代碼見教材3.1.2動態(tài)網(wǎng)頁的實現(xiàn)方法02當(dāng)用戶的登錄請求得到響應(yīng)時,我們需要記錄用戶的登錄日志。我們記錄用戶登錄信息,包括IP地址、登錄時間和是否認證失敗等字段。此外,我們還設(shè)置了限制IP地址在單位時間內(nèi)的認證次數(shù),以防止惡意攻擊。如果在限制時間內(nèi)認證失敗次數(shù)超過5次,則不允許用戶進行認證。完整代碼見教材3.1.2動態(tài)網(wǎng)頁的實現(xiàn)方法02通過以上步驟,我們就可以實現(xiàn)用戶的身份認證,并保證了系統(tǒng)的安全性。為了實現(xiàn)博客文章的存儲,我們需要在數(shù)據(jù)庫中創(chuàng)建一個blog_article表,其中包含文章標(biāo)題、作者、發(fā)布時間、文章內(nèi)容、分類和文章ID等字段。完整代碼見教材3.1.3動態(tài)網(wǎng)頁的實現(xiàn)方法02在PHP中,我們可以使用mysqli_query函數(shù)來執(zhí)行SQL語句,包括查詢和修改操作。對于文章的顯示和編輯操作,我們需要根據(jù)文章的ID從blog_article表中查詢相應(yīng)的文章信息。完整代碼見教材3.1.3動態(tài)網(wǎng)頁的實現(xiàn)方法02對于評論的顯示和添加操作,我們需要根據(jù)文章的ID從blog_comment表中查詢相應(yīng)的評論信息以上是基本的文章存儲和顯示邏輯為了查詢文章,我們需要使用SQL的SELECT語句,并在WHERE子句中使用LIKE操作符來模糊匹配文章的標(biāo)題和分類。完整代碼見教材3.1.4動態(tài)網(wǎng)頁的實現(xiàn)方法02在查詢文章之后,我們需要對查詢結(jié)果進行分頁處理,以便在頁面上顯示多個搜索結(jié)果。我們可以使用PHP的$_GET變量來實現(xiàn)分頁以上我們就實現(xiàn)了網(wǎng)站的文章搜索功能。用戶可以輸入關(guān)鍵字搜索相關(guān)的文章,并在分頁中查看多個搜索結(jié)果。課堂實踐一、任務(wù)名稱:實現(xiàn)動態(tài)網(wǎng)頁功能二、任務(wù)內(nèi)容:編輯博客系統(tǒng)源碼實現(xiàn)博客文章的編輯和查詢。三、工具需求:PHP開發(fā)工具四、任務(wù)要求:完成實踐練習(xí)后,由老師檢查完成情況。課堂思考一、如何選擇關(guān)系型和非關(guān)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論