本週筆記內容
- 本篇筆記是透過 Lidemy 課程 [ BE101 ] 來學習後端基礎,著重在資訊安全的部分,能夠自己實作出作業並理解相關理論是本週的目標,總結一句話就是「資訊安全_XSS, SQL Injection, CSRF 及後端驗證」
作業概覽
留言板部分
- 加強留言板,修補漏洞
- hash 密碼
- XSS
- SQL Injection
- 權限管理相關漏洞
- 功能
- 編輯
- 刪除
- 身份系統的管理後台
- 管理員(可以新增留言,也可以編輯與刪除任意留言)
- 一般使用者(可以新增留言,且編輯與刪除自己的留言)
- 遭停權使用者(不能新增留言,但是可以編輯與刪除自己的留言)
- 加強留言板,修補漏洞
部落格
- 有登入的時候可以
- 要有登入機制,讓管理員能夠登入到管理後台
- 身為一個管理員,要能夠新增文章
- 身為一個管理員,要能夠編輯文章
- 身為一個管理員,要能夠刪除文章
- 身為一個管理員,新增文章時要有標題以及內文(如果有時間的話,可以去串 CKEditor)
- 沒登入的時候
- 身為一個訪客,在首頁要能看到最新的五篇文章
- 身為一個訪客,可以從導覽列點入:文章列表,並看到所有文章
- 有登入的時候可以
簡答題
- 請說明雜湊跟加密的差別在哪裡,為什麼密碼要雜湊過後才存入資料庫
- include、require、include_once、require_once 的差別
- 請說明 SQL Injection 的攻擊原理以及防範方法
- 請說明 XSS 的攻擊原理以及防範方法
- 請說明 CSRF 的攻擊原理以及防範方法
筆記內容
一、Hash 密碼
三、防止 XSS
七、其他筆記
出現錯誤訊息 "Fatal error: Call to a member function bind_param() on boolean" 怎麼解決?
主要是我在上傳 w11 的作業時,在作業一的 index.php 出現這個錯誤,本來以為是他所說的 bind_param() 的行數(這個錯誤訊息有顯示行數的),但後來發現是 sql 語法有問題
首先是我在 lidemy 的資料庫裡面改了資料庫名稱,要先把名字改好,資料都在重新輸入一次才可以。
第二個是因為用這個字串拼接的方式寫 sql 太亂了,所以漏看一個資料庫名稱沒改,後來把拼接方式改回原本的形式跟名稱改好以後,就沒事了。