W11_資訊安全_XSS, SQL Injection, CSRF 及後端驗證_學習筆記整理


Posted by Christy on 2021-08-03

本週筆記內容

  • 本篇筆記是透過 Lidemy 課程 [ BE101 ] 來學習後端基礎,著重在資訊安全的部分,能夠自己實作出作業並理解相關理論是本週的目標,總結一句話就是「資訊安全_XSS, SQL Injection, CSRF 及後端驗證」

作業概覽

  • 留言板部分

    • 加強留言板,修補漏洞
      • hash 密碼
      • XSS
      • SQL Injection
      • 權限管理相關漏洞
    • 功能
      • 編輯
      • 刪除
      • 身份系統的管理後台
        • 管理員(可以新增留言,也可以編輯與刪除任意留言)
        • 一般使用者(可以新增留言,且編輯與刪除自己的留言)
        • 遭停權使用者(不能新增留言,但是可以編輯與刪除自己的留言)
  • 部落格

    • 有登入的時候可以
      • 要有登入機制,讓管理員能夠登入到管理後台
      • 身為一個管理員,要能夠新增文章
      • 身為一個管理員,要能夠編輯文章
      • 身為一個管理員,要能夠刪除文章
      • 身為一個管理員,新增文章時要有標題以及內文(如果有時間的話,可以去串 CKEditor)
    • 沒登入的時候
      • 身為一個訪客,在首頁要能看到最新的五篇文章
      • 身為一個訪客,可以從導覽列點入:文章列表,並看到所有文章
  • 簡答題

    • 請說明雜湊跟加密的差別在哪裡,為什麼密碼要雜湊過後才存入資料庫
    • include、require、include_once、require_once 的差別
    • 請說明 SQL Injection 的攻擊原理以及防範方法
    • 請說明 XSS 的攻擊原理以及防範方法
    • 請說明 CSRF 的攻擊原理以及防範方法

筆記內容

一、Hash 密碼

二、防止 SQL injection

三、防止 XSS

四、作業一實作-完成留言板

五、作業二實作-陽春部落格

六、怎麼做一個 Blog

七、其他筆記

出現錯誤訊息 "Fatal error: Call to a member function bind_param() on boolean" 怎麼解決?

主要是我在上傳 w11 的作業時,在作業一的 index.php 出現這個錯誤,本來以為是他所說的 bind_param() 的行數(這個錯誤訊息有顯示行數的),但後來發現是 sql 語法有問題

首先是我在 lidemy 的資料庫裡面改了資料庫名稱,要先把名字改好,資料都在重新輸入一次才可以。

第二個是因為用這個字串拼接的方式寫 sql 太亂了,所以漏看一個資料庫名稱沒改,後來把拼接方式改回原本的形式跟名稱改好以後,就沒事了。

參考資料










Related Posts

自駕車控制 high-level 概念理解

自駕車控制 high-level 概念理解

LikeCoin 連結測試

LikeCoin 連結測試

Day 80

Day 80


Comments